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 --docker-email=xxx@xxx.xxx

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
上一篇:博客搬家-入住阿里云栖社区


下一篇:日志审计常见问题排查手册