RabbitMQ登入遇到問題:User can only log in via localhost
阿新 • • 發佈:2021-01-13
技術標籤:Kubernetes/OpenShiftdockerjavakubernetespythonjson
本文內容
在K8s中使用需認證的私服倉庫需要匯入認證資訊到叢集中,常規匯入方式有兩種:
- 使用Docker已登入的倉庫密文匯入
- 使用命令列建立Secret物件匯入
本文介紹的就是以上兩種方法。
使用Docker已登入的倉庫密文匯入
1、docker login登入私服倉庫,輸入賬號密碼
docker login <私服倉庫地址>
2、登入成功後,檢查是否生成 docker 認證配置檔案(生成在當前登入使用者家的.docker目錄下)
cat ~/.docker/config.json
3、通過 ~/.docker/config.json
建立Secret物件匯入叢集
kubectl create secret generic <secret-name> \
--from-file=.dockerconfigjson=~/.docker/config.json \
--type=kubernetes.io/dockerconfigjson
- secret-name:k8s Secret的名稱標識欄位
還有更復雜的方式,請參考官方文件
使用命令列建立Secret物件匯入
替換引數並執行
kubectl create secret docker-registry <secret-name> --docker-server=<your-registry-server> --docker-username=<docker-username> --docker-password=<docker-password> --docker-email=<your-email>
- secret-name:k8s Secret的名稱標識欄位
- your-registry-server:私服docker倉庫地址
- docker-username:docker登入使用者
- docker-password:docker密碼
- your-email:郵件地址
檢視Secret建立情況
kubectl get secret
使用叢集中的Secret拉取映象
以Pod模板舉例:
test-private-registry.yaml
apiVersion: v1 kind: Pod metadata: name: test-private-registry spec: containers: - name: private-reg-container image: <your-registry-server>/tomcat:8.5.34-alpine imagePullSecrets: - name: <secret-name>
注意:在spec中指定imagePullSecrets的name為之前Secret的名稱即可
kubectl apply -f test-private-registry.yaml