纯shell一键搭建k8s集群
互联网 2022/4/30 7:13:25
部署环境:三台centos7.9,其中一台master节点,两台node节点
docker版本:20.10.14
kubernetes版本:1.23.6
master节点:
[root@k8s-master ~]# cat deploy_k8s_master.sh
#!/bin/bash
#1.configure domain name resolve
echo '192.168.121.50 k8s-master' >>/etc/hosts
echo '192.168.121.51 k8s-node1' >>/etc/hosts
echo '192.168.121.52 k8s-node2' >>/etc/hosts
#2.close firewall
systemctl disable firewalld.service --now
#3.close selinux
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
#4.configure chrony
yum -y install chrony
sed -i -e 's/^server/#&/g' -e '2a server k8s-master iburst' /etc/chrony.conf
echo "allow all" >> /etc/chrony.conf
echo "local stratum 10" >> /etc/chrony.conf
#5.permanent close swap partition
sed -i 's/.*swap.*/#&/g' /etc/fstab
swapoff -a
#6.modify module parameter
modprobe br_netfilter
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p
#7.install docker-ce
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo=yum-config-manager --add-repo=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7.9/x86_64/stable/
mv /etc/yum.repos.d/mirrors.tuna.tsinghua.edu.cn_docker-ce_linux_centos_7.9_x86_64_stable_.repo /etc/yum.repos.d/docker-ce.repo
echo 'gpgcheck=0' >>/etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce docker-ce-cli containerd.io
systemctl enable docker --now
#8.configure docker image accelerator
tee /etc/docker/daemon.json <<-'EOF'
{
"insecure-registries" : ["0.0.0.0/0"],
"registry-mirrors": ["https://7o6gyryt.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker
#9.configure k8s source and install k8s
cat >/etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.tuna.tsinghua.edu.cn/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet --now
#10.k8s-master initialization
version=$(kubelet --version |cut -d'v' -f2)
docker --version
kubelet --version
kubeadm init --kubernetes-version=${version} --apiserver-advertise-address=192.168.121.50 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
--------------------------------------------------------------------------------------------------------------------------------------
node节点:
[root@k8s-node1 ~]# cat deploy_k8s_node.sh
#!/bin/bash
#1.configure domain name resolve
echo '192.168.121.50 k8s-master' >>/etc/hosts
echo '192.168.121.51 k8s-node1' >>/etc/hosts
echo '192.168.121.52 k8s-node2' >>/etc/hosts
#2.close firewall
systemctl disable firewalld.service --now
#3.close selinux
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
#4.configure chrony
yum -y install chrony
sed -i -e 's/^server/#&/g' -e '2a server k8s-master iburst' /etc/chrony.conf
chronyc sources
#5.permanent close swap partition
sed -i 's/.*swap.*/#&/g' /etc/fstab
swapoff -a
#6.modify module parameter
modprobe br_netfilter
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p
#7.install docker-ce
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo=yum-config-manager --add-repo=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7.9/x86_64/stable/
mv /etc/yum.repos.d/mirrors.tuna.tsinghua.edu.cn_docker-ce_linux_centos_7.9_x86_64_stable_.repo /etc/yum.repos.d/docker-ce.repo
echo 'gpgcheck=0' >>/etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce docker-ce-cli containerd.io
systemctl enable docker --now
#8.configure docker image accelerator
tee /etc/docker/daemon.json <<-'EOF'
{
"insecure-registries" : ["0.0.0.0/0"],
"registry-mirrors": ["https://7o6gyryt.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker
#9.configure k8s source and install k8s
cat >/etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.tuna.tsinghua.edu.cn/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet --now
#10.check version
docker --version
kubelet --version
master节点脚本执行成功后,如下图所示
然后将绿色框选中的部分在master节点执行,蓝色框选中的部分在node节点执行
node节点加入master节点成功后如图所示
然后我们在master节点上查看,此时状态都是NotReady(master节点是因为缺少网络插件,node节点是缺少网络插件对应的镜像和容器)
然后通过GitHub下载flannel插件
并安装这个插件
安装完插件之后,node节点就有了flannel插件相关的镜像和容器,并且k8s集群的状态都变成了Ready

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[纯shell一键搭建k8s集群]http://www.zyiz.net/tech/detail-318203.html
- 2023-06-01聊聊部署在K8S的项目如何获取客户端真实IP
- 2023-05-10为什么Kubernetes已经成为程序员必备技能
- 2023-04-02一文读懂k8s的外网访问方式,Ingress/NodePort/LoadBanlancer
- 2023-04-02基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3
- 2023-04-02基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3
- 2023-03-12K8S 性能优化 - 大型集群 CIDR 配置
- 2023-03-12K8S 性能优化 - K8S APIServer 调优
- 2023-03-12K8S 性能优化-K8S Node 参数调优
- 2023-03-08K8S 实用工具之二 - 终端 UI K9S
- 2023-03-08K8S 实用工具之三 - 图形化 UI Lens