kubeadm离线一键安装K8s集群
kubeadm离线一键安装K8s集群,当前安装的k8s版本为1.27.1
·
kubeadm离线一键安装K8s集群
前言:
- 安装的K8s版本为 1.27.1
- 容器运行时使用的containerd,不是使用docker。因为K8s的1.24版本之后已经抛弃了docker,建议熟悉使用containerd,这也是趋势。
环境:
这里使用的操作系统为CentOS7.8
如何使用
- 下载安装包
安装包:k8s_install.tar.gz
下载链接:http://117.72.10.233/file/k8s_install.tar.gz
整个离线包大小约为700M - 解压后创建离线源(所有节点都要执行)
tar zxvf k8s_install.tar.gz && cd k8s_install
mv k8s.repo /etc/yum.repos.d/ && mv k8s_repo /opt/
- 执行安装脚本
K8s的master节点上执行sh k8s_install.sh [内网ip]
K8s的node节点上执行sh k8s_install.sh
- node节点加入集群
第二步K8smaster节点执行完成后,会显示如何node节点如何加入集群的提示:类似于kubeadm join XXXX --token XXXX
这种。复制然后在node节点上执行即可
验证
在master节点上执行kubectl get nodes显示节点状态为Ready,表面集群OK。
下面是k8s_install.sh脚本内容,可参考
k8s_install.sh
#!/bin/bash
function main() {
set -e
cat > /etc/sysctl.d/k8s_better.conf << 'EOF'
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
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
sysctl -p /etc/sysctl.d/k8s_better.conf
modprobe br_netfilter
cat > /etc/sysconfig/modules/ipvs.modules << 'eog'
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
eog
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules
cat > /etc/modules-load.d/containerd.conf << 'eoh'
overlay
br_netfilter
eoh
modprobe overlay
modprobe br_netfilter
yum install -y containerd.io
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i '/SystemdCgroup/s/false/true/g' /etc/containerd/config.toml
sed -i 's/sandbox_image.*/sandbox_image \= "registry.aliyuncs.com\/google_containers\/pause:3.6"/g' /etc/containerd/config.toml
systemctl enable containerd
systemctl start containerd
ctr ns create k8s.io
ctr -n k8s.io i import --platform linux/x86_64 k8s_images.tar
yum install -y kubectl-1.27.1-0 kubelet-1.27.1-0 kubeadm-1.27.1-0
echo 'KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"' > /etc/sysconfig/kubelet
systemctl enable kubelet
}
function master() {
intra_ip=$1
kubeadm init --kubernetes-version=v1.27.1 --pod-network-cidr=10.224.0.0/16 --apiserver-advertise-address=$intra_ip --image-repository registry.aliyuncs.com/google_containers
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
kubectl apply -f calico.yaml
kubectl get node
kubectl get pod -n kube-system
}
opt=$1
if [ -z $opt ];then
main
elif [ $# -eq 1 ];then
main
master $opt
else
echo -e "\033[1;31m""Parameter is wrong""\033[0m"
exit 1
fi
更多推荐
已为社区贡献8条内容
所有评论(0)