1. 程式人生 > 其它 >RabbitMQ登入遇到問題:User can only log in via localhost

RabbitMQ登入遇到問題:User can only log in via localhost

技術標籤: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