我正在尝试将我的 Azure AKS Kubernetes 集群添加到我的 GitLab CI/CD Kubernetes 集成中。
运行以下命令后,我可以从我的电脑上在集群上执行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 表单中,我必须输入以下字段:
- Kubernetes 集群名称
- API 网址
- CA 证书 - 证书颁发机构捆绑包(PEM 格式)
- 令牌
- 项目命名空间(可选,唯一)
我尝试了这些值:
- 我将 my
<kubernetes-cluster-name>
与 azure 上的集群名称和.kube/config
文件上的集群名称相匹配。 - 我把从文件中
https://<resource-group-name+some-hexadecimal-chars>.hcp.westeurope.azmk8s.io:443
复制的url 。.kube/config
- 我首先尝试
certificate-authority-data
了.kube/config
文件中的,但没有奏效,我已经尝试了.kube/config
文件中的所有三个 base64 字符串,没有一个有效。 - 我从
.kube/config
文件中放入令牌。 - 将此留空,因为它是可选的。
在 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 证书上,也许还有其他方法可以从命令行az
或kubectl
.
这里是否有人已经将 Kubernetes 从 GitLab 集成到 Azure AKS 工作?