Kubernetes+Harbor实现本地镜像的拉取
harbor
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
项目地址:https://gitcode.com/gh_mirrors/ha/harbor
免费下载资源
·
Kubernetes+Harbor实现本地镜像的拉取
为了使用的镜像更加安全和快捷,我们想到可以通过搭建好的私有镜像仓库从中拉取镜像。所以此次试验在原有的Kubernetes集群之外还要在创建一个harbor私有镜像仓库。
实验步骤
1.搭建一个harbor私有仓库,因为在之前的博客中我已经详细的介绍过如何搭建一个harbor私有仓库所以这里不再做过多的赘述。
2.搭建好harbor之后,需要创建一个用于存放Kubernetes集群专用镜像的项目。并向其中上传几个镜像用于后续试验。
3.在node节点中的daemon.jason文件中加入harbor仓库的IP地址。
[root@node_02 ~]# vi /etc/docker/daemon.json
{
"insecure-registries":["192.168.80.138"],
"registry-mirrors": ["https://u9rp4hyl.mirror.aliyuncs.com"]
}
重启docker服务
systemctl daemon-reload
systemctl restart docker
4.在node节点登陆过harbor仓库后需要查看,harbor的登录凭据。
在管理员的家目录中查看
cd
cat .docker/config.json |base64 -w 0
ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjgwLjEzOCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy44IChsaW51eCkiCgl9Cn0=
两个node节点的凭据是一致的。
5.在master节点上创建secret镜像拉取资源服务。
#登录凭证一定要用一行显示
vi registry-pull-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: registry-pull-secret
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjgwLjEzOCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy44IChsaW51eCkiCgl9Cn0=
type: kubernetes.io/dockerconfigjson
#创建资源
kubectl create -f registry-pull-secret.yaml
#查看生成的资源
kubectl get secret
[root@master_01 opt]# kubectl get secret
NAME TYPE DATA AGE
default-token-hx89r kubernetes.io/service-account-token 3 12d
registry-pull-secret kubernetes.io/dockerconfigjson 1 29m
6.最后就可以通过yaml文件拉取harbor仓库的镜像创建pod了
#创建yaml文件,指定harbor仓库的IP地址和使用的验证凭证
vi my-nginx.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-nginx
spec:
replicas: 3
template:
metadata:
labels:
app: my-nginx
spec:
imagePullSecrets:
- name: registry-pull-secret
containers:
- name: my-nginx
image: 192.168.80.138/myhaven/nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: my-nginx
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort:
selector:
app: my-nginx
查看生成的pod资源端口
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 12d
my-nginx NodePort 10.0.0.124 <none> 80:37494/TCP 22m
可以看到我之前下载过一次,用yaml文件创建了3个副本需要下载3次所以一共下载了4次。
强制删除命令
强制删除命令,删除无状态pod资源
kubectl delete pod [pod name] --force --grace-period=0 -n [namespace]
GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb
pull image from registry.goharbor.io instead of dockerhub
Update testcase to support Docker Image Can Be Pulled With Credential
Change gitlab project name when user changed.
Update permissions count and permission count total
Change webhook_endpoint_ui
Signed-off-by: stonezdj <stone.zhang@broadcom.com>
Co-authored-by: Wang Yan <wangyan@vmware.com> 9 天前
3dbfd422
Signed-off-by: wang yan <wangyan@vmware.com> 10 天前
更多推荐
已为社区贡献1条内容
所有评论(0)