天天看點

Kubernetes-連接配接Harbor倉庫拉取鏡像

準備工作

  1. Harbor 鏡像倉庫伺服器,我的伺服器IP是192.168.242.132;
  2. Kubernetes叢集節點能通過【docker login】指令登入Harbor倉庫,詳細設定步驟參考 這篇博文

開始配置

  1. 建立secret
kubectl create secret docker-registry secret-name --namespace=default \
--docker-server=http://192.168.242.132 --docker-username=username \
--docker-password=password [email protected]
           

secret-name: secret的名稱

namespace: 命名空間

docker-server: Harbor倉庫位址

docker-username: Harbor倉庫登入賬号

docker-password: Harbor倉庫登入密碼

docker-email: 郵件位址

Kubernetes-連接配接Harbor倉庫拉取鏡像

create secret

  1. 建立yaml檔案,我這裡以nginx為例建立了一個
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: 192.168.242.132/library/nginx:1.15.1
        imagePullPolicy: Always
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  sessionAffinity: ClientIP
  selector:
    app: nginx
  ports:
    - port: 80
      nodePort: 30080
           

執行指令建立

kubectl create -f deploy-nginx.yaml 
           

建立完成後檢視Pods

kubectl get pods
           
Kubernetes-連接配接Harbor倉庫拉取鏡像

pods

最後可以通過浏覽器來驗證一下,yaml檔案中定義對外暴露的端口是30080,現在在浏覽器中可以輸入Kubernetes叢集任意節點的IP加上30080端口,我這裡輸入master節點的IP,http://192.168.242.136:30080/,可以正常看到nginx界面

Kubernetes-連接配接Harbor倉庫拉取鏡像

image.png

那麼這個鏡像到底部署在哪個節點上呢,可以通過如下指令檢視

kubectl get pods -n default -o wide
           
Kubernetes-連接配接Harbor倉庫拉取鏡像

檢視pods

繼續閱讀