k8s集群与gitlab registry连接

在之前的几篇部署文章中,我实现了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命令实现测试:

bash 复制代码
# ip 和 端口替换为你自己的gitlab部署IP,registry仓库端口
telnet 100.100.100.100 5050

但是中标麒麟7.4上默认没有telnet。考虑通过docker测试连通性。

bash 复制代码
docker login 我的ip:5050 -u root -p <your_gitlab_root_password>

在无法联通5050端口的情况下,你会看到如下内容

针对我的gitlab registry部署情况,这里面有两个问题,一是使用了https协议,二是连不上5050端口。

这种情况需要开通5050端口的策略。

2 修改为http协议

需要在所有k8s节点添加配置文件信息daemon.json

bash 复制代码
sudo vi /etc/docker/daemon.json

在内部添加"insecure-registries": ["100.100.100.100:5050"],既在这个ip和端口使用http协议

json 复制代码
{
  // 如果已有内容请保留,注意在原先内容后添加英文逗号
  "insecure-registries": ["100.100.100.100:5050"]
}

注意,这需要你在所有k8s节点执行一遍,包括主节点和所有从节点。后续的认证信息只需要在可以控制k8s的集群操作。

3 添加认证信息

在你的kubectl主机上,使用 kubectl create secret docker-registry 命令来创建一个类型为 docker-registry 的Secret,将你的仓库认证信息存入K8s集群:

bash 复制代码
kubectl create secret docker-registry gitlab-registry-secret \
  --docker-server=100.100.100.100:5050 \  # 你的GitLab Registry地址和端口
  --docker-username=your_username \        # 你的GitLab用户名
  --docker-password=your_password_or_token \ # 你的GitLab密码或个人访问令牌
  --docker-email=your_email@example.com \   # 你的邮箱地址
  --namespace=default                       # 指定Secret创建的命名空间,按需修改

在部署时,在deployment.yaml文件中添加对gitlab-registry-secret的饮用

yaml 复制代码
imagePullSecrets:
      - name: gitlab-registry-secret  # 此处的名字必须与你创建的Secret名称一致
相关推荐
岁岁种桃花儿11 小时前
kubenetes从入门到上天系列第二十一篇:Kubernetes安装Ingress实战
云原生·容器·kubernetes
程序员老赵13 小时前
超全 Docker 镜像源配置指南|Windows/Mac/Linux一键搞定,拉镜像再也不卡顿
linux·后端·容器
一殊酒14 小时前
【Docker】Docker Desktop 安装指南及汉化教程
运维·docker·容器
一殊酒19 小时前
【Docker】快速入门指南
运维·docker·容器
**蓝桉**19 小时前
prometheus监控docker容器(Rocky9)
docker·容器·prometheus
Mr_Chenph20 小时前
备份Docker
运维·docker·容器
http阿拉丁神猫20 小时前
kubernetes知识点汇总19~24
云原生·容器·kubernetes
IT界的老黄牛20 小时前
RocketMQ 5.x 集群部署实战:3 台机器搞定 2 主 2 从,Docker Host 模式一把梭
docker·容器·rocketmq
春日见21 小时前
UniAD的逻辑,与传统自动驾驶的差异
人工智能·windows·git·机器学习·docker·容器·自动驾驶
乐观的Terry21 小时前
Docker 部署 RocketMQ 5.1.0 踩坑实录:从超时到 Console 连不上的完整解决之路
docker·容器·rocketmq