我在VirtualBox(Ubuntu)上安装了Minikube来模拟部署环境,并使用Jenkins管道。在我的Jenkins容器中,我还安装了kubectl命令来控制Minikube。
因此,我创建了以下阶段:
stage("k8s command test") {
withCredentials([usernamePassword(credentialsId: 'cbcba826-ef01-4b18-856f-e6dc4eb27c1f', usernameVariable: 'my-user', passwordVariable: 'PASSWORD')]) {
sh """
kubectl config view
kubectl create -f /home/my-user/file-svc.yml
"""
}
}
首先,我的集群在输出中似乎是空的,我有:
+ kubectl config view
apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []
如果我检查 .kube/config 文件,我会看到以下配置:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /home/my-user/.minikube/ca.crt
server: https://127.0.0.1:8443
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
as-user-extra: {}
client-certificate: /home/my-user/.minikube/client.crt
client-key: /home/my-user/.minikube/client.key
作为一个刚接触 Kubernetes 的新手,我需要帮助理解如何实现 Jenkins 和 Minikube 之间的通信。
因此,在执行 kubectl create -f /home/my-user/file-svc.yml 命令时,出现了身份验证错误。我阅读了很多文章,发现 kubectl 需要证书才能连接到 API 服务器,那么在 Jenkins 中如何做到呢?