首页 > 解决方案 > 将 docker 镜像部署到 k8s 集群问题

问题描述

我正在尝试将 docker 映像部署到 kubernetes,但遇到了一个奇怪的问题。下面是我在 jenkinsfile 中使用的命令

stage('Deploy to k8s') {
   steps{
       sshagent(['kops-machine']) {
         sh "scp -o StrictHostKeyChecking=no deployment.yml ubuntu@<ip>:/home/ubuntu/"
         sh "ssh ubuntu@<ip> kubectl apply -f ."
         sh 'kubectl set image deployment/nginx-deployment nginx=account/repo:${BUILD_NUMBER}'

    }
  }

我收到此错误消息

奇怪的是,如果我复制并粘贴此命令并在集群上执行,图像会更新 kubectl set image deployment/nginx-deployment nginx=account/repo:69 有人可以帮忙,图像构建并成功推送到 docker hub,它的只是我坚持拉和部署到 kubernetes 集群,如果您有任何其他选择,请告诉我,复制到服务器的 deployment.yml 文件如下

spec:
  containers:
  - name: nginx
    image: account/repo:3        
    ports:
    - containerPort: 80

标签: nginxkubernetesdeploymentdocker-tag

解决方案


好的,如果找到解决方法。如果我在我的 docker 文件中更改这一行

        sh "ssh ubuntu@<ip> kubectl apply -f ." to
        sh "ssh ubuntu@<ip> kubectl set image deployment/nginx-deployment 
        nginx=account/repo:${BUILD_NUMBER}"

它可以工作,但是如果根本没有创建部署,那么我必须添加这两行才能使其工作

             sh "ssh ubuntu@<ip> kubectl apply -f ."
             sh "ssh ubuntu@<ip> kubectl set image deployment/nginx-deployment 
             nginx=account/repo:${BUILD_NUMBER}" 

推荐阅读