我能够遵循文档并获得kubernetes集群。但我想添加第二个主节点,我在第二个节点上尝试了这个但看到错误
[root@kubemaster02 ~]# kubeadm init --apiserver-advertise-
address=10.122.161.XX --pod-network-cidr=10.244.0.0/16 --kubernetes-
version=v1.10.0
[init] Using Kubernetes version: v1.10.0
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks.
[WARNING SystemVerification]: docker version is greater than the most
recently validated version. Docker version: 18.03.0-ce. Max validated
version: 17.03
[WARNING FileExisting-crictl]: crictl not found in system path
Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl
[preflight] Some fatal errors occurred:
[ERROR Port-10250]: Port 10250 is in use
[preflight] If you know what you are doing, you can make a check non-fatal
with `--ignore-preflight-errors=...`
我的问题是,这是通过初始化添加第二个主人的正确方法吗?我的另一个问题是如何判断节点是否配置为主节点,以下命令由于某种原因没有显示ROLES(可能是旧版本)
[root@master01 ~]# kubectl get nodes -o wide
NAME STATUS AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION
kubemaster01 Ready 215d v1.8.1 <none> CentOS Linux 7 (Core) 3.10.0-693.5.2.el7.x86_64
kubemaster02 Ready 132d v1.8.4 <none> CentOS Linux 7 (Core) 3.10.0-693.5.2.el7.x86_64
kubenode01 Ready 215d v1.8.1 <none> CentOS Linux 7 (Core) 3.10.0-693.5.2.el7.x86_64
kubenode02 Ready 214d v1.8.1 <none> CentOS Linux 7 (Core) 3.10.0-693.5.2.el7.x86_64
答案 0 :(得分:0)
在您的情况下,请查看端口10250上正在运行的内容:
netstat -nlp | grep 10250
因为您的错误是:
[ERROR Port-10250]:端口10250正在使用
通常,您可以引导其他主人,并拥有2个主人。在另一个主服务器上运行kubeadm之前,您需要先从kubemaster01
复制K8s CA证书。为此,您有两种选择:
选项1:使用scp复制
scp root@<kubemaster01-ip-address>:/etc/kubernetes/pki/* /etc/kubernetes/pki
选项2:复制粘贴
复制/etc/kubernetes/pki/ca.crt
,/etc/kubernetes/pki/ca.key
,/etc/kubernetes/pki/sa.key
和/etc/kubernetes/pki/sa.pub
的内容,并在kubemaster02
上手动创建这些文件
The next step is to create a Load Balancer。你如何做到这一点取决于你的环境;例如,您可以利用云提供商Load Balancer,或使用NGINX,keepalived或HAproxy设置您自己的。
对于自举,请使用config.yaml
:
cat >config.yaml <<EOF
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: <private-ip>
etcd:
endpoints:
- https://<your-ectd-ip>: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: <podCIDR>
apiServerCertSANs:
- <load-balancer-ip>
apiServerExtraArgs:
apiserver-count: "2"
EOF
确保替换以下占位符:
your-ectd-ip
您的etcd的IP地址private-ip
使用主服务器的私有IPv4。<podCIDR>
load-balancer-ip
端点连接您的主人然后你可以运行命令:
kubeadm init --config=config.yaml
并引导大师。
但是如果你真的想要一个HA集群,请遵循文档的最低要求,并为主人使用3个节点。他们为etcd仲裁创建了这些要求。在每个主节点上,它们运行的etcd非常靠近主服务器。