Jenkins Kubernetes 管道错误:节点不是 Kubernetes 节点

问题描述 投票:0回答:1

问题详情:

问题是Nginx服务器无法启动,并且不清楚是什么阻止了服务启动。我需要在 Jenkins Kubernetes 配置中配置 pod 吗?有人可以帮我解决这个问题吗?

描述

我已经在本地主机环境中设置了 Jenkins 和 Kubernetes。对于 Jenkins,我部署了 Jenkins Docker 容器,对于 Kubernetes,我在主机系统上使用 Minikube(也作为 Docker 容器运行)。此外,我已在主机上安装了

kubectl

已安装的 Jenkins 插件:

我安装了两个 Jenkins 插件:

  1. Kubernetes
  2. Docker(在此设置中未使用)

Kubernetes 云配置:

我在 Jenkins 中配置了一个名为“my-k8s”的 Kubernetes 云。对于配置,我使用了一个秘密文件。秘密文件内容从

~$ cat .kube/config
获取并用实际数据更新证书。

连接测试:

http://192.168.1.41:8080/manage/cloud/my-k8s/configure
中测试连接时,显示“已连接到 Kubernetes v1.28.3”。

Jenkins 管道语法:

下面是我的 Jenkins 管道语法:

pipeline {
    agent any

    stages {
        stage('Deploy Nginx to Kubernetes') {
            steps {
                container('Kubernetes') {
                    // Configure Kubernetes server details
                    // credentialsId 'kubernetes-credentials' // Replace with your credential ID // I don't know what credentialsId
                    serverName 'https://192.168.49.2:8443' // Kubernetes API server URL(~$ cat .kube/conf )
                    namespace 'default' // Replace with your desired namespace

                    // Define Nginx deployment YAML
                    script {
                        def deploymentYaml = """
                        apiVersion: apps/v1
                        kind: Deployment
                        metadata:
                          name: nginx-deployment
                          labels:
                            app: nginx
                        spec:
                          replicas: 1
                          selector:
                            matchLabels:
                              app: nginx
                          template:
                            metadata:
                              labels:
                                app: nginx
                            spec:
                              containers:
                              - name: nginx
                                image: nginx:latest
                                ports:
                                - containerPort: 80
                        """
                        writeFile file: 'nginx-deployment.yaml', text: deploymentYaml
                    }

                    // Deploy Nginx using Kubernetes plugin
                    kubernetesApply file: 'nginx-deployment.yaml'
                }
            }
        }
    }
}

问题:

运行此管道时,Jenkins 日志显示:

Started by user admin
Replayed #1
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/kube-nginx-project
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Deploy Nginx to Kubernetes)
[Pipeline] container
[Pipeline] // container
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: Node is not a Kubernetes node: 
Finished: FAILURE
kubernetes jenkins jenkins-pipeline
1个回答
0
投票

您可能需要考虑检查管道脚本和 Kubernetes API 服务器中的 URL 配置。您还可以验证所使用的端口是否正确且开放。

这里包括 adkarigar 的示例步骤,其中产生了您遇到的错误。您可以参考此文档与您的语法进行交叉匹配。

© www.soinside.com 2019 - 2024. All rights reserved.