软件安装
- docker
- kubernetes-cni
- kubeadm
- kubectl
- kubelet
前置条件
- 关闭防火墙
- 关闭 selinux
- 关闭 swapoff
swapoff -a
- 设置系统环境
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
- 开启 ipvs
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack_ipv4"
for kernel_module in \${ipvs_modules}; do
/sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
if [ $? -eq 0 ]; then
/sbin/modprobe \${kernel_module}
fi
done
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs
生成 kubernetes 配置文件
kubeadm config print init-defaults ClusterConfiguration >kubeadm.conf
或者
kubeadm config print init-defaults >kubeadm-config.yaml
修改 kubeadm.conf
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kubernetesVersion: v1.18.1
修改 API 服务器地址
localAPIEndpoint:
advertiseAddress: {masterIP}
bindPort: 6443
配置子网络
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler: {}
添加 proxy 的 mode 为 ipvs
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:
SupportIPVSProxyMode: true
mode: ipvs
查看需要的镜像
kubeadm config images list --config kubeadm.conf
拉取镜像
kubeadm config images pull --config kubeadm.conf
初始化主节点
kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs |tee kubeadm-init.log
--experimental-upload-certs 在搭建高可用集群时用到
node 节点加入主节点
执行初始化主节点最后输出的最后一条命令即可 带有
join
字段的
配置网络
sysctl net.bridge.bridge-nf-call-iptables=1
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl create -f kube-flannel.yml
注意事项:查看配置文件里是否有指定网卡选项,根据实际情况进行修改
185 containers:
186 - name: kube-flannel
187 image: quay.io/coreos/flannel:v0.12.0-amd64
188 command:
189 - /opt/bin/flanneld
190 args:
191 - --ip-masq
192 - --kube-subnet-mgr
193 - --iface=ens32
查看节点
kubectl get nodes
查看运行 pod
kubectl get pod -n kube-system -o wide
pod 节点状态全部为
running
代表集群搭建成功
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于