K8s 拉取Harbor仓库私有镜像

网友投稿 496 2022-10-27

K8s 拉取Harbor仓库私有镜像

写在前面

之前的博客中有写过k8s拉取官方镜像,但在实际生产环境中,我们通常都是利用Dockerfile构建的镜像,再上传到Harbor仓库,所以,使用k8s拉取harbor私有仓库的镜像,是很有必要学习的。

实验环境

IP地址 角色 部署软件
192.168.154.134 master docker 、k8s
192.168.154.129 node01 docker 、k8s
192.168.154.132 node02 docker 、k8s
192.168.154.131 mysql mysql 5.7

实验步骤

一、部署k8s群集

参考博客 或 ImagePullBackOff

两种解决办法:

1.到 Harbor 仓库中把该镜像的项目设置成公开权限2.创建认证登录秘钥,在拉取镜像时带上该秘钥

1.先登录 Harbor 仓库:

docker login -u admin -p Harbor12345 192.168.154.129

2.查看登录的秘钥数据:

cat ~/.docker/config.json

3.进行base64加密

cat ~/.docker/config.json | base64 -w 0

4.创建 secret.yaml 文件:

vim secret.yaml

apiVersion: v1 kind: Secret metadata: name: login type: kubernetes.io/dockerconfigjson data: #这里添加加密后的密钥 .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjE1NC4xMjkiOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDkuNSAobGludXgpIgoJfQp9

5.创建对象

kubectl create -f secret.yaml

四、创建应用

1.编写deploy.yml文件

vim tomcat-deploy.yml

apiVersion: extensions/v1beta1 kind: Deployment metadata: name: tomcat-dpm spec: replicas: 2 template: metadata: labels: # Pod副本拥有的标签,对应RC的Selector app: tomcat-cluster spec: containers: - name: tomcat-cluster image: 192.168.154.129/maven-test01/maven-quartz:master #这里镜像就是harbor仓库的项目镜像 imagePullPolicy: Always ports: - containerPort: 8080 # 容器应用监听的端口号 # 这里指定创建的密钥 imagePullSecrets: - name: login

注意:需要在创建容器时指定 imagePullSecrets 指标,指定刚才创建的秘钥

2.创建,拉取私有镜像:

kubectl create -f tomcat-deploy.yml

3.查看pod

kubectl get pod -o wide

4.查看pod详情

kubectl describe pod tomcat-dpm-568ff775cf-l69s8

五、对外暴露端口

1.编写service文件

vim tomcat-service.yml

apiVersion: v1 kind: Service metadata: name: tomcat-service labels: app: tomcat-service spec: type: NodePort selector: app: tomcat-cluster ports: - port: 8000 targetPort: 8080 nodePort: 32500

kubectl create -f tomcat-service.yml # 创建service

2.查看service

kubectl get svc

3.查看service详情

kubectl describe service tomcat-service

六、测试项目

1.node01访问测试项目

2.node02 访问测试项目

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes的Node和Pod的调度策略
下一篇:SpringBoot如何在线程中获取@Service Bean类
相关文章

 发表评论

暂时没有评论,来抢沙发吧~