【王老师说运维】:如何使用k8s拉取私有仓库镜像?

【王老师说运维】:如何使用k8s拉取私有仓库镜像?_第1张图片
话不多说,直接上,我的zhihu就在下面的图片里面,大家点赞评论加转发,谢谢
1)首先在自己的服务器上登录自己的私有镜像仓库,比如我的是阿里云私有镜像仓库(harbor仓库也一样)
在这里插入图片描述

2)然后这个登录镜像仓库的信息会保存到当前家目录下的.docker/config.json文件中:
【王老师说运维】:如何使用k8s拉取私有仓库镜像?_第2张图片
这个信息就是我们所要的,使用base64加密下

执行命令:cat ~/.docker/config.json | base64
【王老师说运维】:如何使用k8s拉取私有仓库镜像?_第3张图片
把上面生成的一长串字符串复制下来,待会儿要用

2)开始编写k8s yaml文件,我这里就直接写到一个yaml文件里

vim project1.yaml

apiVersion: apps/v1
kind: Deployment   #部署一个无状态的deployment服务
metadata:
  name: wyn-project1
  namespace: project1
  labels:
    app: project1
spec:
  replicas: 3
  selector:
    matchLabels:
      app: project1
  template:
    metadata:
      name: kubia
      labels:
        app: project1
    spec:
      imagePullSecrets:   # 这里是关键,需要指定镜像拉取策略
      - name: docker-registry-secret  # 这个名字需要和下面的secret的名字一样
      containers:
      - image: registry.cn-chengdu.aliyuncs.com/wangyunan_images/myproject:v1
        name: project1
        hostPath:
          path: /usr/share/nginx/html
        resources:
          requests:
            cpu: 1000m
            memory: 1024Mi
          limits:
            cpu: 2000m
            memory: 2048Mi
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: nginx-data-path
      volumes:
      - name: nginx-data-path

---  # 这里是三个短杠,表示下面还有内容
apiVersion: v1
kind: Service
metadata:
  name: wyn-nginx1-svc
  namespace: project1
  labels:
    app: project1
spec:
  type: NodePort
  selector:
    app: project1
  ports:
  - port: 30003  # 集群内部通信的端口
    targetPort: 80  # nginx容器的端口
    nodePort: 30004  # 对外暴露端口

---
apiVersion: v1
kind: Secret
metadata:
  name: docker-registry-secret  # 这个名字要和imagePullSecrets指定的名字一样
  namespace: project1
data:
  .dockerconfigjson: ewoJImF1dGhtlci5pby9IjogIm1aGJqSXdNVEkwoaGJqSXdNVEk9IgzdHJ5LmNuLWhhbmd6aG91LmFsaXl1bmNzLmNvbSI6IHsKCQkJImF1dGgiOiAiYzNWdlltVnlRR0ZzYVhsMWJpNWpiMjA2V21oNU1USXp

# 设置pod自动扩容或缩容:kubectl autoscale deployment -n project1 wyn-project1 --cpu-percent=30 --max=5 --min=1

注意:

我上面的 .dockerconfigjson 里面的内容为了安全,做了缩减,需要填上你们自己的

.dockerconfigjson是固定写法,别把那个 . 写漏了

命名空间namespace也需要一样

3)创建

创建pod:kubectl create -f project1.yaml

查看pod、service、secret的状态:kubectl get po,svc,secret -n project1
【王老师说运维】:如何使用k8s拉取私有仓库镜像?_第4张图片
查看pod拉取的详细信息:kubectl describe po -n project1 wyn-project1-bb68896df-2bsk6

【王老师说运维】:如何使用k8s拉取私有仓库镜像?_第5张图片
浏览器访问:http://11.18.1.135:30004 这里涉及隐私就不截图了

人生苦短!做个题吧,让你们看看k8s有多香:

高级运维工程师在线评测:
http://www.gtalent.cn/exam/interview/nsYteJ5wFfWkMdb2
高级golang开发工程师在线评测:
http://www.gtalent.cn/exam/interview/fIbUj1PgO7pMoBeH
级Linux运维工程师在线评测:
http://www.gtalent.cn/exam/interview/eUrdXoILlsGnh6At
【王老师说运维】:如何使用k8s拉取私有仓库镜像?_第6张图片

你可能感兴趣的:(kubernetes,运维开发,测评,kubernetes,docker,运维)