Docker Image 推到阿里云倉庫,可以看 SpringBoot Docker 發布到 阿里倉庫
1. 阿里鏡像倉庫加了授權,所以 K8S 拉之前要做下授權處理
[root@k8smaster ~]# kubectl create secret docker-registry registry-demo \ --namespace=default \ --docker-server=registry.cn-shanghai.aliyuncs.com \ --docker-username=hi帳戶[email protected] \ --docker-password=vipsoft \ [email protected] secret/registry-demo created [root@k8smaster ~]# kubectl get secrets NAME TYPE DATA AGE default-token-q7lps kubernetes.io/service-account-token 3 5d17h registry-demo kubernetes.io/dockerconfigjson 1 2m53s [root@k8smaster ~]# kubectl describe secrets registry-demo Name: registry-demo Namespace: default Labels: <none> Annotations: <none> Type: kubernetes.io/dockerconfigjson Data ==== .dockerconfigjson: 196 bytes [root@k8smaster ~]#
解釋說明:
[root@k8smaster ~]# kubectl create secret docker-registry registry-demo \ #創建型別為:docker-registry的secrets名稱為registry-demo --namespace=default \ # 值 default 可不寫,默認為 default, 不同Namespace,在創建secrets時需要指定Namespace, --docker-server=registry.cn-shanghai.aliyuncs.com \ #阿里云鏡像倉庫,公網地址 --docker-username=hi帳戶[email protected] \ #阿里云的帳號 --docker-password=vipsoft \ #倉庫的密碼,在 倉庫管理-> 訪問憑證中可設定 [email protected] # 用戶郵箱 [root@k8smaster ~]# kubectl get secret registry-demo -o yaml #查看secret詳細資訊
2. 生成 yaml ,并修改yaml 配置 imagePullSecrets,否則后面會報 ImagePullBackOff,拉取需要登錄 requested access to the resource is denied
K8S 拉取鏡像 ImagePullBackOff pull access denied
[root@k8smaster ~]# kubectl create deployment javademo1 --image=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0 --dry-run -o yaml > javademo1.yaml W1018 18:49:33.112150 62765 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client. [root@k8smaster ~]# vi javademo1.yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: javademo1 name: javademo1 spec: replicas: 1 selector: matchLabels: app: javademo1 strategy: {} template: metadata: creationTimestamp: null labels: app: javademo1 spec: containers: - image: registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0 name: vipsoft resources: {} imagePullSecrets: - name: registry-demo status: {}
3. 創建容器
[root@k8smaster ~]# kubectl apply -f javademo1.yaml deployment.apps/javademo1 created [root@k8smaster ~]# kubectl get pods NAME READY STATUS RESTARTS AGE javademo1-84dd5c9485-8ckk6 0/1 ContainerCreating 0 6s nginx-f89759699-5hkdw 1/1 Running 0 5d17h [root@k8smaster ~]# kubectl get pods NAME READY STATUS RESTARTS AGE javademo1-84dd5c9485-8ckk6 1/1 Running 0 65s nginx-f89759699-5hkdw 1/1 Running 0 5d17h [root@k8smaster ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES javademo1-84dd5c9485-8ckk6 1/1 Running 0 111s 10.244.1.4 k8snode1 <none> <none> nginx-f89759699-5hkdw 1/1 Running 0 5d17h 10.244.2.2 k8snode2 <none> <none> [root@k8smaster ~]# kubectl scale deployment javademo1 --replicas=3 # 擴容3個服務 deployment.apps/javademo1 scaled [root@k8smaster ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES javademo1-84dd5c9485-7vgkr 0/1 ImagePullBackOff 0 16s 10.244.2.6 k8snode2 <none> <none> javademo1-84dd5c9485-8ckk6 1/1 Running 0 6m21s 10.244.1.4 k8snode1 <none> <none> javademo1-84dd5c9485-8hfmd 0/1 ImagePullBackOff 0 16s 10.244.2.7 k8snode2 <none> <none> nginx-f89759699-5hkdw 1/1 Running 0 5d17h 10.244.2.2 k8snode2 <none> <none> [root@k8smaster ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES javademo1-84dd5c9485-7vgkr 1/1 Running 0 58s 10.244.2.6 k8snode2 <none> <none> javademo1-84dd5c9485-8ckk6 1/1 Running 0 7m3s 10.244.1.4 k8snode1 <none> <none> javademo1-84dd5c9485-8hfmd 1/1 Running 0 58s 10.244.2.7 k8snode2 <none> <none> nginx-f89759699-5hkdw 1/1 Running 0 5d17h 10.244.2.2 k8snode2 <none> <none> [root@k8smaster ~]# kubectl expose deployment javademo1 --port=8111 --target-port=8111 --type=NodePort # 對外暴露埠,不然不能訪問 service/javademo1 exposed [root@k8smaster ~]# kubectl get svc #查看 service 的運行狀態 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE javademo1 NodePort 10.106.43.46 <none> 8111:31452/TCP 25s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5d17h nginx NodePort 10.103.87.81 <none> 80:30339/TCP 5d17h [root@k8smaster ~]#
4. 測驗

5. 補充
| CrashLoopBackOff | 容器退出,kubelet正在將它重啟 |
| InvalidImageName | 無法決議鏡像名稱 |
| ImageInspectError | 無法校驗鏡像 |
| ErrImageNeverPul | 策略禁止拉取鏡像 |
| ImagePullBackOff | 正在重試拉取 |
| RegistryUnavailable | 連接不到鏡像中心 |
| ErrImagePull | 通用的拉取鏡像出錯 |
| CreateContainerConfigError | 不能創建kubelet使用的容器配置 |
| CreateContainerError | 創建容器失敗 |
| m.internalLifecycle.PreStartContainer | 執行hook報錯 |
| RunContainerError | 啟動容器失敗 |
| PostStartHookError | 執行hook報錯 |
| ContainersNotInitialized | 容器沒有初始化完畢 |
| ContainersNotReady | 容器沒有準備完畢 |
| ContainerCreating | 容器創建中 |
| PodInitializing | pod初始化中 |
| DockerDaemonNotReady | docker還沒有完全啟動 |
| NetworkPluginNotReady | 網路插件還沒有完全啟動 |
| Evicted | 即驅趕的意思,意思是當節點出現例外時,kubernetes將有相應的機制驅趕該節點上的Pod,多見于資源不足時導致的驅趕, |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/517779.html
標籤:其他
上一篇:對CART決策樹剪枝程序的理解
