gpt4 book ai didi

kubernetes - 如何将 Kubernetes 与 Gitlab 集成

转载 作者:行者123 更新时间:2023-12-04 16:42:09 25 4
gpt4 key购买 nike

我正在尝试将 Kubernetes 集群与 Gitlab 集成以使用 Gitlab Review Apps 功能。

  • Kubernetes 集群是通过 Rancher 1.6
  • 创建的
  • 运行 kubectl get all来自 kubernetes shell 给出

  • NAME             TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)        AGE
    svc/my-service LoadBalancer x.x.144.67 x.x.13.89 80:32701/TCP 30d
    svc/kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 30d

  • 在 Gitlab CI / CD > Kubernetes页面,我们主要需要输入3个字段:
  • API 网址
  • CA证书
  • token

  • API 网址
  • 如果我没记错的话,我们可以从 Rancher Dashboard 获取 Kubernetes API URL > Kubernetes > CLI > Generate Config并复制 server cluster 下的网址

  • apiVersion: v1
    kind: Config
    clusters:
    - cluster:
    api-version: v1
    insecure-skip-tls-verify: true
    server: "https://x.x.122.197:8080/r/projects/1a7/kubernetes:6443"


    CA 证书和 token ?
  • 现在,问题是,从哪里获得 CA 证书(pem 格式)和 token ?

  • 我尝试了所有 ca.crttoken来自 Kubernetes 仪表板中所有命名空间的值,但我在尝试安装 Helm Tiller 时在 Gitlab 上收到此错误应用:

    Something went wrong while installing Helm Tiller

    Can't start installation process


    这是我的 secret 页面的样子
    enter image description here

    最佳答案

    我也被 kubernetes 和 GitLab 淘汰了。我创建了几个用于测试的单节点“集群”,其中一个带有 minikube 另一个通过 kubeadm .

    我在 GitLab forum 上回答了这个问题但我在下面发布我的解决方案:

    API 网址

    根据official documentation ,API URL 仅为 https://hostname:port没有斜线

    列出 secret

    首先,我照常列出 secret :

    $ kubectl get secrets
    NAME TYPE DATA AGE
    default-token-tpvsd kubernetes.io/service-account-token 3 2d
    k8s-dashboard-sa-token-XXXXX kubernetes.io/service-account-token 3 1d

    获取服务 token
    $ kubectl -o json get secret k8s-dashboard-sa-token-XXXXX | jq -r '.data.token' | base64 -d
    eyJhbGci ... sjcuNA8w

    获取 CA 证书

    然后我使用自定义选择器通过 jq 直接从 JSON 输出中获取 CA 证书:
    $ kubectl -o json get secret k8s-dashboard-sa-token-XXXXX | jq -r '.data."ca.crt"' | base64 -d - | tee ca.crt
    -----BEGIN CERTIFICATE-----
    MIICyDCCAbCgAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl
    ... ... ... ... ... ...
    FT55iMtPtFqAOnoYBCiLH6oT6Z1ACxduxPZA/EeQmTUoRJG8joczI0V1cnY=
    -----END CERTIFICATE-----

    验证 CA 证书

    有了 CA 证书,您可以 verify照常:
    $ openssl x509 -in ca.crt -noout -subject -issuer
    subject= /CN=kubernetes
    issuer= /CN=kubernetes

    $ openssl s_client -showcerts -connect 192.168.100.20:6443 < /dev/null &> apiserver.crt

    $ openssl verify -verbose -CAfile ca.crt apiserver.crt
    apiserver.crt: OK

    关于kubernetes - 如何将 Kubernetes 与 Gitlab 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50384412/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com