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名称一致
相关推荐
放寒假脚后跟v1 小时前
Pod 的 YAML 文件中 exitCode 字段的具体含义、不同取值代表的场景
运维·云原生·容器·kubernetes·k8s
东方佑1 小时前
使用Docker Compose一键部署OnlyOffice:完整指南与配置解析
运维·docker·容器
原神启动11 小时前
K8S(五)—— YAML文件解析
java·容器·kubernetes
lin张2 小时前
k8s(二)项目生命周期管理、发布策略与声明式资源管理
云原生·容器·kubernetes
赵文宇(温玉)2 小时前
Docker的价值、特点、创新与关键技术
运维·docker·容器
Zsr10232 小时前
K8S安装指南与核心操作命令汇总
云原生·容器·kubernetes
孤岛悬城3 小时前
53 k8s基础与安装
云原生·容器·kubernetes
Coder码匠3 小时前
Docker Compose 部署 Spring Boot 应用完全指南
spring boot·docker·容器
可爱又迷人的反派角色“yang”3 小时前
k8s(四)
linux·网络·云原生·容器·kubernetes·云计算
2501_939909054 小时前
Rancher 管理 Kubernetes 集群与Pod的详解
容器·kubernetes·rancher