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名称一致
相关推荐
^Lim2 小时前
Docker搭建ESPIDF环境,程序下载
运维·docker·容器
VirusVIP3 小时前
gitlab解决合并冲突本地处理的步骤
gitlab
虚伪的空想家5 小时前
K8S部署的ELK分片问题解决,报错:unexpected error while indexing monitoring document
运维·elk·云原生·容器·kubernetes·报错·eck
laolitou_102412 小时前
CentOS7安装部署K8s
云原生·容器·kubernetes
Q飞了12 小时前
k8s里三种探针的使用场景
云原生·容器·kubernetes
bxlj_jcj14 小时前
Service :微服务通信、负载、故障难题的解决方案
云原生·容器·kubernetes
Q飞了15 小时前
Kubernetes Pod 的生命周期与故障排查
云原生·容器·kubernetes
娶个名字趴15 小时前
Docker(二)
运维·docker·容器
Ribou17 小时前
k8s集群部署nacos集群
kubernetes