kubeadm方式部署集群
一、准备环境
主机清单
主机名 | 地址 | 角色 | 配置 |
---|---|---|---|
kub-master | 10.12.153.72 | 主节点 | 2核4G |
kub-node1 | 10.12.153.148 | 工作节点 | 2核4G |
kub-node2 | 10.12.153.149 | 工作节点 | 2核4G |
修改主机名
设置防火墙、selinux状态
主机名解析
cat >> /etc/hosts << EOF
10.12.153.72 kube-master
10.12.153.148 kube-node1
10.12.153.149 kube-node2
EOF
固定ip重启网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPRTOT=dhcp (动态)改为 static(静态)
IPADDR= IP地址
PREFIX=24 子网掩码
GATEWAY=网关
DNS1=114.114.114.114
DNS2=8.8.8.8
重启网络服务后生效
systemctl restart network
同步时间
ntpdate time.windows.com
关闭swap分区
swapoff -a
注释掉swap分区:
sed -i 's/.swap./#&/' /etc/fstab
free -m
二、获取镜像
可通过官方镜像源
三、安装docker
我这里是拉取了镜像的脚本直接部署的docker
四、配置kubeadm源
安装常用插件
1、配置kubeadm源,安装对应版本
1.安装依赖包及常用软件包 # yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-utils unzip bind-utils gcc 2.安装对应版本 # yum install -y kubelet-1.22.0-0.x86_64 kubeadm-1.22.0-0.x86_64 kubectl-1.22.0-0.x86_64
2、加载相关ipvs模块
cat <<EOF > /etc/modules-load.d/ipvs.conf
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_nq
ip_vs_sed
ip_vs_ftp
ip_vs_sh
nf_conntrack_ipv4
ip_tables
ip_set
xt_set
ipt_set
ipt_rpfilter
ipt_REJECT
ipip
EOF
3、配置转发相关参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
4、重启服务器加载新配置生效
sysctl --system
注意如果net.bridge.bridge-nf-call-iptables报错,加载br_netfilter模块
modprobe br_netfilter
modprobe ip_conntrack
sysctl -p /etc/sysctl.d/k8s.conf
5、查看是否加载成功
lsmod | grep ip_vs
五、配置启动kubelet
1、配置kubelet使用pause镜像
DOCKER_CGROUPS=
docker info |grep 'Cgroup' | awk ' NR==1 {print $3}'
echo $DOCKER_CGROUPS
2、配置kubelet的资源限制
cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=k8s.gcr.io/pause:3.5"
EOF
六、配置master节点
1、运行初始化
kubeadm init --kubernetes-version=v1.22.0 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.12.153.72
注: apiserver-advertise-address=10.12.153.72 ---master的ip地址。
--kubernetes-version=v1.22.0 --更具具体版本进行修改
保存kuken值,加入集群命令
如果忘记保存可以生成新的kuken值
2、配置使用kubectl
rm -rf $HOME/.kube
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
2、将node加入到集群
在node节点上粘贴master生成的kuken值
3、查看组件节点状态
七、配置网络组件
1、执行yaml文件
在master上执行 curl -L https://docs.projectcalico.org/v3.22/manifests/calico.yaml -O
在执行 kubectl apply -f calico.yaml 下载网络插件
2、再次查看组件节点状态
kubectl get pod A
kubectl get nodes