定西兰州网站建设,东莞建设质监网站,网站建设技术知乎,南部建设局网站在之前的几篇部署文章中#xff0c;我实现了gitlab部署配置、gitlab runner配置#xff0c;registry仓库配置#xff0c;kubectl与k8s集群联通。 链接: 中标麒麟7.4部署Gitlab 链接: 中标麒麟7.4为gitlab添加Registry 链接: 中标麒麟7.4部署gitlab-runner 链接: gitlab流水线…在之前的几篇部署文章中我实现了gitlab部署配置、gitlab runner配置registry仓库配置kubectl与k8s集群联通。 链接: 中标麒麟7.4部署Gitlab 链接: 中标麒麟7.4为gitlab添加Registry 链接: 中标麒麟7.4部署gitlab-runner 链接: gitlab流水线与k8s集群的联通 目前整条流水线的自动化部署实现了 IDE-gitlab代码仓库-gitlab CICD-gitlab runner-本机 shell- 本机docker-gitlab registry制品仓库-本级kubectl-K8S集群 目前发现集群无法正常从gitlab registry制品仓库中拉取docker打包好的制品。尝试解决这个问题。
1. k8s集群拉取镜像的策略开通
网络受限环境首先需要保证对端口的访问是通畅的。并且要保证k8s集群的每一台从节点都是通畅的。 可以使用telnet命令实现测试:
# ip 和 端口替换为你自己的gitlab部署IPregistry仓库端口
telnet 100.100.100.100 5050但是中标麒麟7.4上默认没有telnet。考虑通过docker测试连通性。
docker login 我的ip:5050 -u root -p your_gitlab_root_password在无法联通5050端口的情况下你会看到如下内容 针对我的gitlab registry部署情况这里面有两个问题一是使用了https协议二是连不上5050端口。
这种情况需要开通5050端口的策略。
2 修改为http协议
需要在所有k8s节点添加配置文件信息daemon.json
sudo vi /etc/docker/daemon.json在内部添加insecure-registries: [“100.100.100.100:5050”]既在这个ip和端口使用http协议
{// 如果已有内容请保留注意在原先内容后添加英文逗号insecure-registries: [100.100.100.100:5050]
}注意这需要你在所有k8s节点执行一遍包括主节点和所有从节点。后续的认证信息只需要在可以控制k8s的集群操作。
3 添加认证信息
在你的kubectl主机上使用 kubectl create secret docker-registry 命令来创建一个类型为 docker-registry 的Secret将你的仓库认证信息存入K8s集群
kubectl create secret docker-registry gitlab-registry-secret \--docker-server100.100.100.100:5050 \ # 你的GitLab Registry地址和端口--docker-usernameyour_username \ # 你的GitLab用户名--docker-passwordyour_password_or_token \ # 你的GitLab密码或个人访问令牌--docker-emailyour_emailexample.com \ # 你的邮箱地址--namespacedefault # 指定Secret创建的命名空间按需修改在部署时在deployment.yaml文件中添加对gitlab-registry-secret的饮用
imagePullSecrets:- name: gitlab-registry-secret # 此处的名字必须与你创建的Secret名称一致