【问题标题】:The connection to the server x.x.x.x:6443 was refused - did you specify the right host or port? Kubernetes与服务器 x.x.x.x:6443 的连接被拒绝 - 您是否指定了正确的主机或端口? Kubernetes
【发布时间】:2022-01-29 23:54:43
【问题描述】:

这里是场景-

我已经部署了 kubernetes 集群,并在其中创建了一个带有“kubectl:1.20”图像的应用程序(比如测试)。我已经为这个测试应用程序创建了所需的集群角色、角色绑定和 sa,以获得管理部署的授权。 现在我的要求是我应该能够作为 cronjob 的一部分从测试 pod 内部获取和修补在 kubernetes 集群中运行的部署。

当我运行 cronjob 时,我在测试 pod 中收到以下提到的错误 “与服务器 x.x.x.x:6443 的连接被拒绝 - 您是否指定了正确的主机或端口?”

我已将集群的 kubeconfig 文件作为 configmap 传递给测试 pod。

下面是 cronjob yml 文件 -

kind: CronJob
apiVersion: batch/v1beta1
metadata:
  name: test
spec:
  schedule: "*/2 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          serviceAccountName: local-kubectl-scale-deploy
          containers:
          - name: mycron-container
            image: bitnami/kubectl:1.20
            imagePullPolicy: IfNotPresent
            env:
              - name: KUBECONFIG
                value: "/tmp/kubeconfig"
            command: [ "/bin/sh" ]
            args: [ "/var/httpd-init/script", "namespace" ]
            tty: true
            volumeMounts:
            - name: script
              mountPath: "/var/httpd-init/"
            - name: kubeconfig
              mountPath: "/tmp/"
          volumes:
          - name: script
            configMap:
              name: cronscript
              defaultMode: 0777
          - name: kubeconfig
            configMap:
              name: kubeconfig
          restartPolicy: OnFailure
          terminationGracePeriodSeconds: 0

  concurrencyPolicy: Replace

下面是我在 pod 中作为 configmap 传递的 kubeconfig 文件。

kind: ConfigMap
apiVersion: v1
metadata:
  name: kubeconfig
  labels:
    app: kubeconfig
data:
  kubeconfig: |
    apiVersion: v1
    kind: Config
    clusters:
    - name: default-cluster
      cluster:
        certificate-authority-data: xxxxxxxxxxx
        server: https://x.x.x.x:6443
    contexts:
    - name: default-context
      context:
        cluster: default-cluster
        namespace: default
        user: default-user
    current-context: default-context
    users:
    - name: default-user
      user:
        token: xxxxxx        

我是否缺少 pod 中的一些配置来与这个 x.x.x.x:6443 IP 通信?

【问题讨论】:

  • 您使用的是哪个版本的 Kubernetes,您是如何设置集群的?您是否使用裸机安装或某些云提供商?重现您的问题很重要。

标签: kubernetes


【解决方案1】:

要诊断与地址的通信错误,我们需要从您的网络配置中获取更多详细信息,但我们可以修复 cronjob。

实现此目的的正确方法是使用类似于https://stackoverflow.com/a/58378834/3930971 的探测器 RBAC 设置服务帐户

【讨论】:

    猜你喜欢
    • 2019-11-06
    • 2020-02-25
    • 2022-10-13
    • 2022-11-17
    • 2019-07-17
    • 2019-06-01
    • 2018-12-03
    • 2019-09-25
    • 2021-03-16
    相关资源
    最近更新 更多