K8S二进制部署----对接Harbor私有仓库
文章目录一、概述二、实验环境介绍一、概述Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker-Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用;这些新的企业级特性包括:管理用户界面,基于角色的访问控制,AD/LDAP集成以及审计日志等,足以满足基本企业需求。官方地址:https://goharbor.io/二、实验环境介绍此实验是基于K8S二进制群
·
一、概述
- Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker-Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用;
- 这些新的企业级特性包括:管理用户界面,基于角色的访问控制,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
- 官方地址:https://goharbor.io/
二、实验环境介绍
此实验是基于K8S二进制群集部署升级优化,对于镜像仓库选择了与harbor私有仓库进行对接,使node的镜像操作全部基于harbor来完成,更加方便、安全
K8S二进制详细部署可参考前面博客K8S企业级二进制部署,点此跳~~
服务器规划:
三、Harbor仓库部署
参考前面博客
harbor仓库部署,点此跳~~~
- 在harbor上创建项目
四、harbor对接node节点
- 在2个node节点中指明harbor仓库位置
##所有node节点都需要操作
[root@k8s_node1 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://7b6asy31.mirror.aliyuncs.com"],
"insecure-registries":["192.168.5.15"]
}
##重启docker服务
[root@k8s_node1 ~]# systemctl restart docker
2个node登录harbor仓库,
注意在使用harbor下载镜像创建资源时,要保证node上的harbor处于登录状态
[root@k8s_node1 ~]# docker login 192.168.5.15
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
- 上传镜像到harbor仓库
##先从公网仓库下载tomcat镜像
[root@k8s_node1 ~]# docker pull tomcat:8.0.52
##修改镜像标签上传至harbor
[root@k8s_node1 ~]# docker tag tomcat:8.0.52 192.168.5.15/project/tomcat
[root@k8s_node1 ~]# docker push 192.168.5.15/project/tomcat
- 在node节点上查看登录harbor的安全凭据
[root@k8s_node1 ~]# cat .docker/config.json |base64 -w 0
ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjUuMTUiOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuOCAobGludXgpIgoJfQp9[roo
- 进入master节点,根据此凭据创建安全pod,供业务容器创建直接调用
[root@k8s_master ~]# vim registry-pull-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: registry-pull-secret
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjUuMTUiOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuOCAobGludXgpIgoJfQp9
type: kubernetes.io/dockerconfigjson
##创建pod
[root@k8s_master ~]# kubectl create -f registry-pull-secret.yaml
secret/registry-pull-secret created
五、验证
- 在msater中创建一个tomcat的业务容器,调用的镜像为harbor中的镜像
##编写yaml文件
[root@k8s_master ~]# vim tomcat-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-tomcat
spec:
replicas: 2
template:
metadata:
labels:
app: my-tomcat
spec:
imagePullSecrets:
- name: registry-pull-secret
containers:
- name: my-tomcat
image: 192.168.5.15/project/tomcat
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: my-tomcat
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 31111
selector:
app: my-tomcat
##执行创建,副本数量为2
[root@k8s_master ~]# kubectl create -f tomcat-deployment.yaml
- 查看pod资源情况
[root@k8s_master ~]# kubectl get pods,svc | grep tomcat
pod/my-tomcat-546b9b4868-8ml6g 1/1 Running 0 95s
pod/my-tomcat-546b9b4868-fhd9f 1/1 Running 0 95s
service/my-tomcat NodePort 10.0.0.228 <none> 8080:31111/TCP 95s
查看harbor网页,查看下载次数
由此可见,k8s群集创建pod资源,调用的是harbor仓库中的镜像,已经成功对接
更多推荐
已为社区贡献10条内容
所有评论(0)