1. 程式人生 > 實用技巧 >在k8s中使用harbor倉庫

在k8s中使用harbor倉庫

在k8s中使用harbor倉庫

修改每個node上的docker認證倉庫

  將每個node節點上的docker同樣需要配置可信任倉庫

vi /etc/docker/daemon.json 

#修改為
{"registry-mirrors": ["http://a58c8480.m.daocloud.io"],
"insecure-registries": ["10.1.210.33"]}


#重啟docker
systemctl restart docker

建立認證secret

  由於harbor採用了使用者名稱密碼認證,所以在映象下載時需要配置sercet

#建立
kubectl create secret docker-registry registry-secret --namespace=default  \
--docker-server=10.1.210.33 \
--docker-username=admin \
--docker-password=Harbor12345 


#檢視secret
[root@master demo]# kubectl get secret
NAME                  TYPE                                  DATA   AGE
default-token-gdwgn   kubernetes.io/service-account-token   3      2d18h
registry-secret       kubernetes.io/dockerconfigjson        1      116s

#刪除
kubectl delete secret registry-secret

部署示例

以一個部署一個nginx為例子,其中需要把containers中的images映象指定為harbor倉庫映象地址,並且使用建立的的secret。

# kubectl create -f nginx.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels: 
    appname: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
        appname: nginx
  template:
    metadata:
      labels:
        appname: nginx
    spec:
      containers:
      - name: nginx
        image: 10.1.210.33/project1/nginx:latest  #映象地址
        ports:
          - containerPort: 80
      imagePullSecrets:        #使用的secret
       - name: registry-secret 

檢視pod

檢視pod映象拉去日誌,可發現使用的是harbor倉庫。

ref:

https://www.cnblogs.com/wdliu/p/10250385.html

https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

https://blog.csdn.net/u010278923/article/details/77941995

https://kubernetes.io/docs/concepts/containers/images/