我正在尝试创建在git中提交后触发的管道。我已经使用kvm2驱动程序安装了minikube。但是,我不确定是否已正确设置所有内容。 Jenkins先前已安装,并且无法在kubernetes上运行。
下面是我的Jenkins文件。
pipeline {
environment {
....
}
agent any
stages {
stage ('Clone') {
....
}
stage('Build') {
....
}
stage(‘Containerize’) {
.... build images with docker
}
stage('Deploy Image') {
.... push images on Docker hub
}
stage('Deploy Application') {
steps {
// Create namespace if it doesn't exist
sh("kubectl get ns development || kubectl create ns development")
....
}
}
}
}
我还将Kubernetes配置为Cloud。我已将kubernetes URL添加为./kube/config
中的一个节目
kubernetes服务器证书作为/.minikube/ca.crt
的内容
sudo openssl pkcs12 -export -out kubernetes.pfx -inkey apiserver.key -in apiserver.crt -certfile ca.crt -passout pass:jenkins
我的问题是:
[Pipeline] { (Deploy Application)
[Pipeline] sh
+ kubectl get ns development
The connection to the server localhost:8080 was refused - did you specify the right host or port?
这与RBAC有关吗?我尝试使用kubectl create serviceaccount jenkins
使用秘密令牌并复制令牌,但是当我测试连接时,它不起作用。
我不确定这是否是使用以下工具在Kubernetes上部署的正确方法 管道。 请提出是否有更好的方法来部署我的微服务。
答案 0 :(得分:0)
有很多部署到kubernetes的方法,使用更适合您的方法
上述错误与群集的地址/ API端点有关,因此找不到您的群集,您需要在合适的位置提供kubeconfig或使用其他方式连接到群集
类似的东西:
kubectl --kubeconfig=/path/to/kubeconfig-file get ns development || kubectl --kubeconfig=/path/to/kubeconfig-file create ns development")
与往常一样,请先尝试手动运行这些命令,并确保它们可以正常运行,然后再将它们放入自动化/管道中