【发布时间】: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