赞
踩
先按照此连接配置ssh
在gitlab-ci里面用以下命令
script:ssh hostname@$SERVER_HOST "./upgrade.sh"
在update.sh里面写kubectl命令脚本
获取kubectl集群证书,在目录下/etc/kubernetes/admin.conf
拷贝过来放在项目的根目录。里面server的地址可能是localhost,改为此K8s管理阶段服务器的Ip
- [root@master ~]# cat /etc/kubernetes/admin.conf
- apiVersion: v1
- clusters:
- - cluster:
- certificate-authority-data: ****
- server: https://192.168.XX.XX:6443
- name: kubernetes
- contexts:
- - context:
- cluster: kubernetes
- user: kubernetes-admin
- name: kubernetes-admin@kubernetes
- current-context: kubernetes-admin@kubernetes
- kind: Config
- preferences: {}
- users:
- - name: kubernetes-admin
- user:
- client-certificate-data: ****
- client-key-data: ****

为gitlab-ci配置kuebctl命令。
- image:
- name: bitnami/kubectl:latest
- script: kubectl get pods -n --kubeconfig admin.conf
在仓库下的默认分支下创建目录
.gitlab/agents/<agent-name>
创建config.yaml文件
- ci_access:
- projects:
- - id: <repository-name>
假定上文说的agent-name是acbot,现在目标里面出现了相应的代理。选择并注册就可以
会生成一串令牌和注册文件,注意必须保存下来。用其命令在想要操作的K8s集群部署gitlab-agent就可以
- helm repo add gitlab https://charts.gitlab.io
- helm repo update
- helm upgrade --install XX gitlab/gitlab-agent \
- --namespace XX \
- --create-namespace \
- --set image.tag=v15.10.0 \
- --set config.token=XXX \
- --set config.kasAddress=XXX
然后gitlb页面里面显示连接成功
- script:
- - kubectl config get-contexts //这里会显示一个context和上文注册的agent对应,对应的仓库名和agent名
- - kubectl config use-context <repository-name>:<agent-name> //使用刚才显示的context
- - kubectl get pods -A// 现在切换到目标K8s的上下文环境了
这里的repository-name是config.yaml所在的仓库名称,而不是当前仓库名称。
如果是在不知道怎么配的话就提前get-contexts 用里面的上下文(如果get-contexts没看到想要的,就说明agent没连接上)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。