首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将Azure AKS Kubernetes集群自签名CA添加到GitLab CI/CD Kubernetes集成?

如何将Azure AKS Kubernetes集群自签名CA添加到GitLab CI/CD Kubernetes集成?
EN

Stack Overflow用户
提问于 2018-06-09 23:19:27
回答 1查看 5K关注 0票数 13

我正在尝试将我的Azure AKS Kubernetes集群添加到我的GitLab CI/CD Kubernetes集成中。

在运行以下命令后,我可以从我的pc在集群上执行kubectl命令:

az aks get-credentials --resource-group <resource-group-name> --name <kubernetes-cluster-name>

它创建了一个包含如下内容的.kube/config文件:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <some long base64 string here>
    server: https://<resource-group-name+some-hexadecimal-chars>.hcp.westeurope.azmk8s.io:443
  name: <kubernetes-cluster-name>
contexts:
- context:
    cluster: <kubernetes-cluster-name>
    user: clusterUser_<resource-group-name>_<kubernetes-cluster-name>
  name: <kubernetes-cluster-name>
current-context: <kubernetes-cluster-name>
kind: Config
preferences: {}
users:
- name: clusterUser_<resource-group-name>_<kubernetes-cluster-name>
  user:
    client-certificate-data: <some long base64 string here>
    client-key-data: <some long base64 string here>
    token: <some secret string of hexadecimal chars here>

在GitLab表单中,我必须输入以下字段:

  1. Kubernetes群集名称
  2. API URL
  3. CA证书颁发机构捆绑包(PEM Kubernetes命名空间(可选,唯一)

我尝试了这些值:

  1. 我将我的<kubernetes-cluster-name>放入了azure上的群集名称和.kube/config文件中的群集名称。
  2. 我放入了从.kube/config文件复制的url https://<resource-group-name+some-hexadecimal-chars>.hcp.westeurope.azmk8s.io:443

H125我首先尝试了D27文件中的D26,但不起作用,并且我已经尝试了D28文件中的所有三个base64字符串,都不起作用。我将标记从D31文件中放入。H232H133将此留空,因为它是可选的。G235

在GitLab中,当我尝试点击按钮Install来安装Helm Tiller时,我得到了这个错误:

Something went wrong while installing Helm Tiller
Can't start installation process. nested asn1 error

有时我会得到这样的错误:

Kubernetes error: SSL_connect returned=1 errno=0 state=error: certificate verify failed

从昨天开始,我一直在尝试让它工作,我在谷歌上搜索了很多,但什么也找不到。

我认为问题出在第三个字段,CA证书,也许还有其他方法可以从命令行azkubectl获取此内容。

这里有没有人已经让这个从GitLab到Azure AKS的Kubernetes集成工作起来了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 04:10:17

后来我发现.kube/config文件的certificate-authority-data中的base64字符串,我正在将它的内容复制到GitLab "Add Kubernetes cluster“表单的CA Certificate字段中,它是PEM格式,但是base64编码的。

PEM格式已经是证书位的base64编码表示,但它在中间有一些换行。整个内容在进入.kube/config之前再次经过base64编码,因此被转换为一个很大的base64单行字符串。

我只需要对这个很大的单行字符串进行base64解码(我在Chrome的控制台窗口中使用了javascript atob("....") ),结果如下所示:

-----BEGIN CERTIFICATE-----
MIIEyDCCArCgAwIBAgIRAOL3N8oMIwWIxcFTZhTkfgMwDQYJKoZIhvcNAQELBQAw
...
...
...
5gP7yoL1peZ+AWjCgcUVZYiItqrBLpWYDgY9g8btYDUIiWlqkmC0+kBaPfwCtckx
cUp3vlwRITrv0mzrxiQjTLTUpEy7EcD+U6IecA==
-----END CERTIFICATE-----

然后,我只需将此内容复制到GitLab "CA证书“字段中,它就起作用了。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50775758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档