k8s集群環境安裝完畢,創建pod時報錯repository does not exist or may require 'docker login',node節點已經登錄過docker鏡像庫、可以正常拉取鏡像,k8s調度就不行!
私有鏡像庫需要添加 imagePullSecrets:---其實就是給k8s創建一個連接私有鏡像庫的地址、賬號、密碼
默認命名空間為default 其他命名空間認證需要添加 --namespaces=名稱空間
kubectl create secret docker-registry 名字 --docker-server=registry.gag.cn --docker-username=admin --docker-password=密碼 -n 命名空間
pod-yaml文件中加入參數
imagePullSecrets:
- name: 名字
apiVersion: apps/v1
kind: Deployment #控制器
metadata:
name: jenkins-tomcat #這個標簽為啟動pod時候的名字
namespace: jenkins
spec:
replicas: 1 #啟動副本數
selector: #設置標簽
matchLabels:
app: jenkins-tomcat #這個標簽相當于分組,查看(kubectl get pods --show-labels)
minReadySeconds: 5 #等待設置的時間后才進行升級,(如果沒有設置該值,在某些極端情況下可能會造成服務不正常運行)
revisionHistoryLimit: 2 #要保留以允許回滾的舊復制集數
strategy: #策略
type: RollingUpdate #默認為滾動更新(可以不寫)
rollingUpdate: #滾動更新
maxSurge: 1 #升級過程中最多可以比原先設置多出的POD數量
maxUnavailable: 1 #升級過程中最多有多少個POD處于無法提供服務的狀態(該不為0)
template: #模板(相當于定義好的一個python中的模塊)
metadata:
labels:
app: jenkins-tomcat #這個標簽需要selector定義的標簽一個,劃分在同一個組
spec:
containers: #模板(容器模板)
- name: jenkins-tomcat #node節點啟動的容器名字(kind控制器名字+標簽名)
image: 192.168.11.128:4430/library/mogodb:20200303104829 #鏡像名
imagePullPolicy: Always #拉取鏡像(選擇方式——直接使用本地擁有的鏡像)
ports:
- containerPort: 80 #容器開放的監聽端口
imagePullSecrets: #拉鏡像使用參數
- name: docek-harbor
restartPolicy: Always #重新啟動pod中所有容器的策略
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-tomcat
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30110
selector:
app: jenkins-tomcat