我正在尝试创建一个在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上部署的正确方法。请建议是否有更好的方法来部署我的微服务。
就像是:
kubectl --kubeconfig=/path/to/kubeconfig-file get ns development || kubectl --kubeconfig=/path/to/kubeconfig-file create ns development")
与往常一样,请尝试手动运行这些命令,并确保它们在将它们放入自动化/管道之前工作