基于 registry,构建 K8s 的 docker 私有仓库
一、host配置对于k8s的所有节点都需要配置host,下面的master-ip、work1-ip以及work2-ip要填入自己节点的主机ipvim /etc/hosts>>>master-ip master.comwork1-ip work1work2-ip work2二、下载registry镜像下载镜像docker pull registry:2运行一个registry容器d
一、host 配置
注意:K8s 的所有节点都需要配置 host,
下面的 master-ip、work1-ip 以及 work2-ip 要填入自己节点的主机 ip
vim /etc/hosts
>>>
master-ip master.com
work1-ip work1
work2-ip work2
二、下载 registry 镜像
下载镜像
docker pull registry:2
运行一个registry容器
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry --restart=always registry:2
查看容器是否运行
docker ps |grep myregistry
三、修改 docker 的 daemon.json 配置
注意:所有的 K8s 节点都需要配置
vim /etc/docker/daemon.json
>>>
{"insecure-registries":["master.com:5000"],
"registry-mirrors":["https://registry.docker-cn.com"]
}
配置后,所有节点重启 docker
systemctl restart docker
四、测试仓库
随便一个节点均可:
下载 httpd
docker pull httpd
镜像 tag 设为:仓库地址+自定义名字:tag
docker tag httpd:latest master.com:5000/httpd:v1
将刚刚设置的镜像上传私有仓库中
docker push master.com:5000/httpd:v1
测试仓库的镜像
curl master.com:5000/v2/_catalog
五、K8s 中测试
新建一个 test.yaml,内容入下:
kind: Deployment
apiVersion: apps/v1
metadata:
name: web01
namespace: default
spec:
selector:
matchLabels:
app: httpd01
replicas: 3
template:
metadata:
labels:
app: httpd01
spec:
containers:
- name: httpd
image: master.com:5000/httpd:v1
创建 deployment 以及对应的 pod:
kubectl apply -f test.yaml
查看运行的 pod:
kubectl get pod -A |grep web01
更多推荐
所有评论(0)