【问题标题】:kubeadm doesn't accept controlplane certificatekey in config filekubeadm 不接受配置文件中的控制平面证书密钥
【发布时间】:2020-12-04 21:46:16
【问题描述】:

使用过的版本:

kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:56:34Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

要使用另一个注册表而不是公共注册表将新的主节点加入控制平面以进行下载,我需要使用带有“--configfile”参数命令行的 kubeadm。我将 k8s 容器镜像加载到我的注册表中,并尝试相应地使用 kubeadm。不幸的是,在这种情况下,kubeadm 不接受配置文件中的“证书密钥”。

kubeadm join my-k8s-api.de:443 --config kubeadm-join-config.yaml

配置文件如下所示:

---
apiVersion: kubeadm.k8s.io/v1beta1
kind: JoinConfiguration
discovery:
  bootstrapToken:
    apiServerEndpoint: "my-k8s-api.de:443"
    caCertHashes:
    - "sha256:9a5687aed5397958ebbca1c421ec56356dc4a5394f6846a64b071d56b3b41a7a"
    token: "4bh3s7.adon04r87zyh7gwj"
nodeRegistration:
  kubeletExtraArgs:
    # pause container image
    pod-infra-container-image: my-registry.de:5000/pause:3.1
controlPlane:
  certificateKey: "eb3abd79fb011ced254f2c834079d0fa2af62718f6b4750a1e5309c36ed40383"```

其实我回来了:

W1204 12:47:12.944020   54671 strict.go:54] error unmarshaling configuration schema.GroupVersionKind{Group:"kubeadm.k8s.io", Version:"v1beta1", Kind:"JoinConfiguration"}: error unmarshaling JSON: while decoding JSON: json: unknown field "certificateKey"

当我使用“kubeadm --control-plane --certificate-key XXXXXXXXX”时,我可以成功地将主节点加入控制平面,但这需要节点能够访问互联网。

有什么猜测吗? 我是不是打错字了?

【问题讨论】:

    标签: kubernetes kubeadm


    【解决方案1】:

    您遇到此错误是因为您使用的 apiVersion : kubeadm.k8s.io/v1beta1 没有此类字段。当我通过v1beta1 文档时,我发现了这一点。你可以自己看看更多细节:v1beta1

    所以你需要做的就是将你的apiVersion 切换为:

    apiVersion: kubeadm.k8s.io/v1beta2
    

    哪些具有所需的归档类型。详情请查看v1beta2

    【讨论】:

      猜你喜欢
      • 2016-02-03
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      相关资源
      最近更新 更多