使用kubeadm搭建集群
AI-摘要
gsxxm GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
前置准备
- 准备两台服务器,一台做master,一台做slave,每台机器内存要大于2G。
- 在命令行通过ufw等防火墙工具开放相关端口,如果使用的是云服务则应去控制台页面进行设置。
- 确保每台机器已经安装了容器运行时,如docker。
1. 安装 kubeadm、kubelet 和 kubectl
1 | cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo |
2. 配置docker的cgroup
编辑/etc/docker/daemon.json
增加以下内容
1 | { |
接着执行
1 | mv /etc/containerd/config.toml /root/config.toml.bak |
3. 初始化control-plane
1 | kubeadm init --pod-network-cidr=10.244.0.0/16 #限定Pod网络IP范围 |
成功后控制台输出如下,按照提示执行命令生成kubeconfig
1 | Your Kubernetes control-plane has initialized successfully! |
4. 安装pod网络组件
参考 https://github.com/cni-genie/CNI-Genie/blob/master/docs/GettingStarted.md
1 | $ curl --insecure -sfL https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml | kubectl apply -f - |
5. 控制节点隔离
默认情况下,出于安全原因,集群不会在控制平面节点上调度Pod,如果希望Pod可以在master上调度的话需做下面操作。
1 | # 查询当前taint,然后移除 |
6. 检查确认当前cluster节点状态
1 | kubectl cluster-info |
至此master节点就完成了
7. 加入slave节点
登陆slave机器,执行上述1,2步骤,并配置config文件
1 | mkdir ~/.kube |
然后复制并执行执行master初始化生成的加入命令
1 | kubeadm join xx.x.x.xx:6443 --token xxxxxx.xxxxxxxx --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxx |
token默认24h的有效期,如果token失效,执行以下命令重新生成
1 | kubeadm token create --print-join-command |
TIPS:
遇到
[ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
可执行以下指令1
echo 1 > /proc/sys/net/ipv4/ip_forward
遇到
[WARNING FileExisting-tc]: tc not found in system path
1
2yum provides tc
yum install iproute-tc遇到
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 172.26.2.101, not <public-ip-address>
1
2rm /etc/kubernetes/pki/apiserver.*
kubeadm init phase certs apiserver --apiserver-cert-extra-sans=<public_ip>