gitlab-ci操纵k8s集群

1.ssh k8s集群,获得k8s集群操作权限

先按照此连接配置ssh

Gitlab配置CI/CD 使用ssh完成自动化部署

 在gitlab-ci里面用以下命令

  script:ssh hostname@$SERVER_HOST "./upgrade.sh"

在update.sh里面写kubectl命令脚本

2.基于证书连接kubernetes集群

获取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
  

  3.基于kubernetes agent 连接kubernetes和gitlab

配置代理文件

在仓库下的默认分支下创建目录

.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页面里面显示连接成功

 配置gitlab-ci

  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没连接上)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Kubernetes集群中安装GitLab Runner,需要执行以下步骤: 1. 创建一个Kubernetes命名空间,用于存储所有与GitLab Runner相关的对象: ``` kubectl create namespace gitlab-runner ``` 2. 在Kubernetes集群中部署GitLab Runner: 在GitLab Runner官网上下载Kubernetes安装脚本,并执行以下命令: ``` export GITLAB_RUNNER_NAME="runner-name" export GITLAB_URL="https://gitlab.example.com/" export REGISTRATION_TOKEN="registration-token" curl -L https://raw.githubusercontent.com/gitlabhq/gitlab-runner/master/docs/install/kubernetes/install.sh | \ bash -s -- register \ --non-interactive \ --url $GITLAB_URL \ --registration-token $REGISTRATION_TOKEN \ --name $GITLAB_RUNNER_NAME \ --executor kubernetes \ --kubernetes-namespace gitlab-runner \ --kubernetes-image alpine:latest \ --kubernetes-privileged \ --kubernetes-pull-policy if-not-present \ --kubernetes-service-account $SERVICE_ACCOUNT_NAME ``` 其中,需要将`GITLAB_RUNNER_NAME`、`GITLAB_URL`和`REGISTRATION_TOKEN`替换为实际的值。 3. 配置GitLab Runner的持久化存储: GitLab Runner需要一个持久化存储来存储日志、缓存和其他数据。可以使用Kubernetes的PersistentVolume和PersistentVolumeClaim来实现。 首先,创建一个PersistentVolumeClaim: ``` apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gitlab-runner-pvc namespace: gitlab-runner spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi ``` 然后,将PersistentVolumeClaim挂载到GitLab Runner的Pod: ``` apiVersion: apps/v1 kind: Deployment metadata: name: gitlab-runner namespace: gitlab-runner spec: replicas: 1 selector: matchLabels: app: gitlab-runner template: metadata: labels: app: gitlab-runner spec: containers: - name: gitlab-runner image: gitlab/gitlab-runner:latest command: - /bin/bash - -c - | cp -r /usr/share/gitlab-runner/config.toml /etc/gitlab-runner/ while true; do sleep 3600; done volumeMounts: - name: config mountPath: /etc/gitlab-runner/ - name: data mountPath: /mnt/data env: - name: CI_SERVER_URL value: https://gitlab.example.com/ - name: RUNNER_EXECUTOR value: kubernetes - name: KUBECONFIG value: /etc/gitlab-runner/kubeconfig - name: KUBERNETES_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: KUBERNETES_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace volumes: - name: config configMap: name: gitlab-runner-config - name: data persistentVolumeClaim: claimName: gitlab-runner-pvc ``` 需要将`CI_SERVER_URL`替换为GitLab服务器的URL。 4. 配置GitLab Runner的Kubernetes配置文件: 需要为GitLab Runner创建一个Kubernetes配置文件,以便它可以在Kubernetes集群中创建Pod和其他资源。可以使用以下命令生成配置文件: ``` kubectl create configmap gitlab-runner-config \ --from-literal=concurrent=1 \ --from-literal=check_interval=30 \ --from-literal=rbac_create=false \ --from-literal=runner_token=runner-token \ --from-literal=runner_registration_timeout=1800 \ --from-literal=namespace=gitlab-runner \ --dry-run=client \ -o yaml > gitlab-runner-config.yaml ``` 需要将`runner_token`替换为实际的GitLab Runner注册令牌。 5. 部署GitLab Runner的Kubernetes配置文件: ``` kubectl apply -f gitlab-runner-config.yaml ``` 完成以上步骤后,GitLab Runner就可以在Kubernetes集群中运行了。可以使用GitLabCI/CD功能来执行各种任务,例如构建和测试应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值