使用配置文件向 kubeadm init 提供节点名称
Provide node name to kubeadm init using config file
我需要在 kuberenetes 中为我的主节点提供一个特定的节点名称。我正在使用 kubeadm 来设置我的集群,我知道有一个选项 --node-name master
您可以将其提供给 kubeadm init,它工作正常。
现在,问题是我正在使用配置文件来初始化集群,并且我已经尝试了各种方法来为集群提供该节点名称,但它没有选择名称。我的 kubeadm init 配置文件是:
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 10.0.1.149
controlPlaneEndpoint: 10.0.1.149
etcd:
endpoints:
- http://10.0.1.149:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
podSubnet: 192.168.13.0/24
kubernetesVersion: 1.10.3
apiServerCertSANs:
- 10.0.1.149
apiServerExtraArgs:
endpoint-reconciler-type: lease
nodeRegistration:
name: master
现在我 运行 kubeadm init --config=config.yaml
超时并出现以下错误:
[uploadconfig] Storing the configuration used in ConfigMap "kubeadm-
config" in the "kube-system" Namespace
[markmaster] Will mark node ip-x-x-x-x.ec2.internal as master by
adding a label and a taint
timed out waiting for the condition
PS:当您不向 kubelet 提供 --hostname-override
以及向 kubeadm init 提供 --node-name
时,也会出现此问题。我提供两者。此外,当我不使用 config.yaml
文件并使用命令行为 kubeadm init 提供 --node-name
选项时,我没有遇到任何问题。
我想知道如何在 config.yaml 文件中提供 --node-name
选项。感谢任何指点。
我可以使用以下配置文件解决这个问题,如果有人遇到同样的问题,只需更新:
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 10.0.1.149
controlPlaneEndpoint: 10.0.1.149
etcd:
endpoints:
- http://10.0.1.149:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
podSubnet: 192.168.13.0/24
kubernetesVersion: 1.10.3
apiServerCertSANs:
- 10.0.1.149
apiServerExtraArgs:
endpoint-reconciler-type: lease
nodeName: master
这是您可以在 config.yaml
中指定 --node-name
的方式
我需要在 kuberenetes 中为我的主节点提供一个特定的节点名称。我正在使用 kubeadm 来设置我的集群,我知道有一个选项 --node-name master
您可以将其提供给 kubeadm init,它工作正常。
现在,问题是我正在使用配置文件来初始化集群,并且我已经尝试了各种方法来为集群提供该节点名称,但它没有选择名称。我的 kubeadm init 配置文件是:
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 10.0.1.149
controlPlaneEndpoint: 10.0.1.149
etcd:
endpoints:
- http://10.0.1.149:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
podSubnet: 192.168.13.0/24
kubernetesVersion: 1.10.3
apiServerCertSANs:
- 10.0.1.149
apiServerExtraArgs:
endpoint-reconciler-type: lease
nodeRegistration:
name: master
现在我 运行 kubeadm init --config=config.yaml
超时并出现以下错误:
[uploadconfig] Storing the configuration used in ConfigMap "kubeadm-
config" in the "kube-system" Namespace
[markmaster] Will mark node ip-x-x-x-x.ec2.internal as master by
adding a label and a taint
timed out waiting for the condition
PS:当您不向 kubelet 提供 --hostname-override
以及向 kubeadm init 提供 --node-name
时,也会出现此问题。我提供两者。此外,当我不使用 config.yaml
文件并使用命令行为 kubeadm init 提供 --node-name
选项时,我没有遇到任何问题。
我想知道如何在 config.yaml 文件中提供 --node-name
选项。感谢任何指点。
我可以使用以下配置文件解决这个问题,如果有人遇到同样的问题,只需更新:
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 10.0.1.149
controlPlaneEndpoint: 10.0.1.149
etcd:
endpoints:
- http://10.0.1.149:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
podSubnet: 192.168.13.0/24
kubernetesVersion: 1.10.3
apiServerCertSANs:
- 10.0.1.149
apiServerExtraArgs:
endpoint-reconciler-type: lease
nodeName: master
这是您可以在 config.yaml
中指定--node-name
的方式