我正在尝试使用Kubeadm初始化一个Kubernetes集群。
我的问题主要有三个,其中一个是大问题,另外两个是“子问题”。
我在为集群分配名称时遇到了困难。当我阅读 kubeadm
的文档时,发现有一个标志--config
,您可以使用它来指定将用于初始化集群的yml文件。
他们的页面上指定了一个示例yml文件,但该文件有很多配置项,我不知道如何设置。因此,我创建了以下配置文件:
apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration
advertiseAddress: "10.62.194.4" # is this correct (see below)
bindPort: 6443
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
networking:
podSubnet: "10.62.194.0/16" # is this correct (see below)
controlPlaneEndpoint: "10.62.194.4:6443" #is this correct (see below)
clusterName: "dev-cluster"
我是这样初始化的:sudo kubeadm init --config=config.yml
然而,当我尝试初始化上述文件时,它没有按预期工作,并在一段时间后超时。
错误消息类似于这样: 很不幸,发生了错误:等待条件超时 这个错误可能是由以下原因引起的: - kubelet未运行。 - kubelet由于节点某些方面的错误配置(需要禁用cgroups)而处于不健康状态。
当我执行 docker ps
时,可以看到所有 kube-system 容器都在运行中,没有退出的容器。正在运行的容器是:
kube-scheduler
kube-controller-manager_kube-controller
kube-apiserver
etcd-ubuntu
kube-controller-manager-ubuntu-xenial
第二个问题:集群名称重要吗?我想设置一个集群名称,因为我计划为三个不同环境设置3个集群,这意味着有3个不同的上下文。如果所有3个默认集群名称相同,会有什么问题吗?
还有最后一个问题,如果我运行命令的服务器(也是主服务器)的IP是10.62.194.4
,那么字段advertiseAddress
、podSubnet
和controlPlaneEndpoint
是否正确?我计划向此集群添加另一个节点,该节点的IP为10.62.194.5。谢谢!