如何为 Kubernetes 集群指定集群名称

4

我正在尝试使用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,那么字段advertiseAddresspodSubnetcontrolPlaneEndpoint是否正确?我计划向此集群添加另一个节点,该节点的IP为10.62.194.5。谢谢!


以下的解决方案是否解决了您的问题? - Malgorzata
2个回答

0

我知道有点晚了,但似乎podSubnet与你的节点子网重叠了。我建议使用不同的/16子网并将节点(VM或裸机)分配到另一个子网。


0

我相信你正在计划建立高可用的Kubernetes设置。你必须在controlPlaneEndpoint选项上配置/提供负载均衡器IP。

  apiVersion: kubeadm.k8s.io/v1beta1
  kind: ClusterConfiguration
  networking:
      podSubnet: "10.62.194.0/16" 
  controlPlaneEndpoint: "Loadbalancer IP:6443" 
  clusterName: "dev-cluster"

您需要在以下kubeadm初始化命令中添加--upload-certs选项。

  sudo kubeadm init --config=config.yaml --upload-certs

输出上述命令的结果提供了一个加入命令,用于将另一个主节点添加到这个高可用的Kubernetes集群设置中。

为什么需要添加 --upload-certs 参数呢?我知道它的作用,但是将证书上传到一个密钥中是为什么必要的呢? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接