当前位置:网站首页>kubernetes集群部署(v1.23.5)
kubernetes集群部署(v1.23.5)
2022-06-26 08:51:00 【cuibin1991】
1.部署拓扑
1.1服务配置及拓扑
镜像:CentOS-7-x86_64-Minimal-1908
CPU:2核
内存:2G

1.2更改主机名
//在master虚拟机上,设置master01节点
hostnamectl set-hostname master01
//立马生效
bash
//查看/etc/hostname为master01
cat /etc/hostname
//重启后永久生效
reboot
//同理在node1虚拟机上,设置node01节点
hostnamectl set-hostname node01
//立马生效
bash
//查看/etc/hostname为node01
cat /etc/hostname
//重启后永久生效
reboot
node2如node1操作
2.安装docker
//安装yum工具
yum install -y yum-utils
//卸载旧版本Docker
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
//安装仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//更新配置yum源后,用如下命令生成缓存,提高搜索安装软件速度
sudo yum makecache fast
//安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io -y
//启动docker
sudo systemctl start docker
//设置开机启动
sudo systemctl enable docker
sudo systemctl status docker
//新增配置文件
cat >> /etc/docker/daemon.json << EOF
{
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF
//重启docker
systemctl restart docker
systemctl status docker
3.服务器配置
3.1关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.2将SELinux设置为permissive模式(相当于将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
3.3允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
3.4关闭系统的Swap
swapoff -a
//关闭swap分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
3.5配置/etc/hosts
//自定义master与node IP,请根据个人情况修改
cat >> /etc/hosts << EOF
192.168.186.155 master01
192.168.186.156 node01
192.168.186.157 node02
EOF
4.安装kubelet、kubeadm和 kubectl
4.1配置软件源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
//针对修改repo_gpgcheck=0
4.2安装kubelet kubeadm kubectl
在所有节点上安装kubelet、kubeadm和kubectl。
- kubelet运行在Cluster所有节点上,负责启动Pod和容器。
- kubeadm用于初始化Cluster。
- 通过kubectl可以部署和管理 应用,查看各种资源,创建、删除和更新各种组件。
sudo yum update -y
//sudo yum install -y kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4
//可以根据github发布版本,指定
//最新的1.24版本已经弃用docker,所以此处需指定1.23
sudo yum install -y kubelet-1.23.5 kubeadm-1.23.5 kubectl-1.23.5
//默认最新版本
//sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet
sudo systemctl start kubelet
//sudo systemctl status kubelet 此时kubelet还没有正常准备,待kubeadm init后master节点会ok,将node节点join添加后kubelet也会正常
4.3检查工具安装
yum list installed | grep kubelet
yum list installed | grep kubeadm
yum list installed | grep kubectl
//查看集群版本结果Kubernetes v1.23.5
kubelet --version
![]()
5.用kubeadm创建Cluster
5.1初始化Master
- --apiserver-advertise-address指明用Master的哪个interface与Cluster的其他节点通信。如果Master有多个interface,建议明确指定,如果不指定,kubeadm会自动选择有默认网关的interface。
- --pod-network-cidr指定Pod网络的范围。Kubernetes支持多种网络方案,而且不同网络方案对--pod-network-cidr有自己的要求,这里设置为10.244.0.0/16是因为我们将使用flannel网络方案,必须设置成这个CIDR。在后面的实践中我们会切换到其他网络方案,比如Canal。
//apiserver-advertise-address 192.168.186.155为master节点IP,根据个人master IP修改
kubeadm init --apiserver-advertise-address 192.168.186.155 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr 10.244.0.0/16 --service-cidr 10.96.0.0/12
补充:Kubeadm初始化报错:[ERROR CRI]: container runtime is not running
解决办法:
rm -rf /etc/containerd/config.toml
systemctl restart containerd
//如果执行失败,需重置
kubeadm reset
//配置客户端kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
5.2初始化worker
//worker节点添加到集群 ---> 在worker节点node1上执行
//可以通过kubeadm token list查看token
//也可以通过如下命令一次性获取命令
kubeadm token create --print-join-command
![]()
5.3添加pod网络 calico --> master节点执行
wget https://docs.projectcalico.org/v3.20/manifests/calico.yaml --no-check-certificate
kubectl apply -f calico.yaml
//此处应用后node状态由NotReady --> Ready
5.4控制面查看集群
kubectl get nodes

kubectl get pod -A

5.5工作负载worker节点node1查看集群
//在master01传文件到node01,其中172.168.186.156为master01节点
scp -r /etc/kubernetes/admin.conf [email protected]:/etc/kubernetes/
//在node1上执行
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile
边栏推荐
- Behavior tree file description
- 《單片機原理及應用》——概述
- Unity connects to Turing robot
- Applet realizes picture preloading (picture delayed loading)
- 《单片机原理及应用》——概述
- 外部排序和大小堆相关知识
- Differences between commonjs and ES6 modularity
- Adding confidence threshold for demo visualization in detectron2
- 实践是成为网工最快的方法,网络工程师实战项目整理
- Is it safe to dig up money and make new debts
猜你喜欢

《一周搞定模电》—负反馈

《一周学习模电》-电容、三极管、场效应管

微信小程序如何转换成百度小程序

phpcms v9手机访问电脑站一对一跳转对应手机站页面插件

PD快充磁吸移動電源方案

"One week's work on Analog Electronics" - Basic amplification circuit

In depth study paper reading target detection (VII) Chinese version: yolov4 optimal speed and accuracy of object detection
![Modify coco evaluation index maxdets=[10,15,20]](/img/f6/a0fbf601371aa51ec5b0136574c756.jpg)
Modify coco evaluation index maxdets=[10,15,20]

Vipshop work practice: Jason's deserialization application

外部排序和大小堆相关知识
随机推荐
Is it safe to dig up money and make new debts
phpcms v9后台文章列表增加一键推送到百度功能
Lagrange multiplier method
【C】青蛙跳台阶和汉诺塔问题(递归)
运行时端常用类的介绍
phpcms v9去掉phpsso模块
行為樹XML文件 熱加載
Self learning neural network sequence -- 2 perceptron
《一周搞定数电》——编码器和译码器
xsync同步脚本的创建及使用(以Debian10集群为例)
Adding confidence threshold for demo visualization in detectron2
Principe et application du micro - ordinateur à puce unique - Aperçu
Master data management of scientific research institutes? Suppliers or customers? I am a correspondent
常用电路设计
phpcms v9后台增加阅读量字段,可任意修改阅读量
Detectron2 draw confusion matrix, PR curve and confidence curve
小程序首页加载之前加载其他相关资源或配置(小程序的promise应用)
行为树的基本概念及进阶
0 basic how to make a cool leadership cockpit?
Application of hidden list menu and window transformation in selenium