openEuler-22.03-LTS-SP3 Kubernets集群部署实战
1、Windows 11 专业版,VMware Workstation 17,XShell、XFtp、openEuler-22.03-LTS-SP32、Kubernets集群节点规划节点名称节点IP地址集群角色处理器数量内存大小磁盘空间master68G100Gk8s-node1worker68G100Gk8s-node1worker68G100G。
一、环境介绍
1、Windows 11 专业版,VMware Workstation 17,XShell、XFtp、openEuler-22.03-LTS-SP3
2、Kubernets集群节点规划
节点名称 | 节点IP地址 | 集群角色 | 处理器数量 | 内存大小 | 磁盘空间 |
---|---|---|---|---|---|
k8s-master1 | 192.168.139.136 | master | 6 | 8G | 100G |
k8s-node1 | 192.168.139.137 | worker | 6 | 8G | 100G |
k8s-node1 | 192.168.139.138 | worker | 6 | 8G | 100G |
二、Open Euler系统安装
1、下载Open Euler系统 (Link),选择 X86_64/服务器/Offline Everything ISO
2、启动VWmare workstation 17,创建新的虚拟机
3、选择“典型(推荐)”选项,点击“下一步”
4、点击“浏览”按钮,指定OpenEuler安装包位置,点击“下一步”
5、由于系统无法识别安装镜像操作系统类型,所以需要指定客户机操作系统内核类型为“Linux”,版本选择“CentOS 8 64位”,然后点击“下一步”
6、指定虚拟机名称,以及虚拟机文件存储位置
7、指定虚拟机使用的磁盘容量:100G
8、点击“自定义硬件”按钮打开虚拟机硬件资源设置窗口
9、拖动滑块指定内存大小:8G
10、点击下拉列表,选择处理器内核数量6
11、设置完成后,点击“关闭”按钮,返回虚拟机创建主界面,点击绿色三角按钮,开启此虚拟机
12、选择语言为“English”
13、一次点击对话框中黄色感叹号图标,进行参数设置
14、点击“Reboot System”完成系统安装
15、系统成功后,使用root账号登录系统
16、重复上述步骤,完成另外两个节点k8s-node1、k8s-node2的安装
三、初次登录虚拟机节点
1、打开XShell工具登录三台虚拟机节点
2、对于所有节点,同时安装tar工具,方便后续使用
yum install tar
四、为所有节点安装Docker容器
1、从Docker官方网站下载repo
cd /etc/yum.repos.d/
curl -O https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's/$releasever/8/g' docker-ce.repo
yum install -y docker-ce
2、配置国内资源镜像环境
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://dockerproxy.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
]
}
EOF
3、启动Docker容器,并检查容器运行状态
systemctl start docker
systemctl enable docker
systemctl status docker
五、为所有节点安装cri-dockerd
1、下载最新版cri-dockerd rpm包
由于众所周知原因,无法直接使用wget下载,所以,直接从github镜像网站下载安装包上传到虚拟机“/toos/”目录进行安装(下载地址),本案例使用版本为:cri-dockerd-0.3.9-3.el8.x86_64.rpm
2、安装cri-dockerd
rpm -ivh cri-dockerd-0.3.9-3.el7.x86_64.rpm
3、为cri-dockerd设置国内镜像服务器
vi /usr/lib/systemd/system/cri-docker.service
# 找到第10行ExecStart=
# 修改为ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
4、启动cri-dockerd服务
systemctl start cri-docker
systemctl enable cri-docker
5、重启Docker容器,并检查容器运行状态
systemctl daemon-reload && systemctl restart docker cri-docker.socket cri-docker
systemctl status docker cir-docker.socket cri-docker
六、为所有节点执行kubernetes安装前准备
1、分别登录每个节点,逐一设置节点名称
#分别登录每个节点,逐一机器配置主机名
#k8s-master
hostnamectl set-hostname k8s-master
#k8s-node1
hostnamectl set-hostname k8s-node1
#k8s-node2
hostnamectl set-hostname k8s-node2
2、分别登录每个节点,查看节点IP配置信息
cd /etc/sysconfig/network-scripts
ll
3、分别登录每个节点,修改节点IP配置信息
vi ifcfg-ens160
#修改第4行
#BOOTPROTO=staitc
#增加下列5行,其中XXX为节点IP地址
#IPADDR=192.168.139.XXX
#PREFIX=24
#NETMASK=255.255.255.0
#GATEWAY=192.168.139.2
#6DNS=114.114.114.114
4、分别登录每个节点,完成主机名与IP的映射
vi /etc/hosts
5、关闭所有节点防火墙,并禁止开机自动启动
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
6、关闭所有节点selinux,并重启主机
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config
reboot
7、为所有节点配置时间自动同步
#安装ntpdate软件
yum -y install ntpdate
#创建计划任务
#设置事件同步规则
#0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com
crontab -e
# 启动时间同步,一个小时同步一次
ntpdate time1.aliyun.com
8、为所有节点配置内核转发及网桥过滤
#修改内容:
#net.ipv4.ip_forward=1
vi /etc/sysctl.conf
9、配置内核参数,将桥接的IPv4流量传递到iptables的链的命令:
cat <<EOF >/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
# 二次编辑,加入"net.ipv4.ip_forward = 1"
vi /etc/sysctl.d/k8s.conf
# 加载br_netfilter模块
modprobe br_netfilter
# 查看是否加载
lsmod | grep br_netfilter
#使用新添加配置文件生效
sysctl --system
10、为所有节点关闭swap分区
# 如果有的话,关闭swap分区
swapoff -a
# 修改fstab文件,永久关闭swap分区
# 注释掉fstab中包含swap的这一行
# /dev/mapper/centos-swap swap swap defaults 0 0
vi /etc/fstab
11、为所有节点安装ipset及ipvsadm,并重启节点
yum -y install ipset ipvsadm
#配置ipvsadm模块加载方式
cat > /etc/sysconfig/modules/ipvs.module <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_sh
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- nf_conntrack
EOF
#授权、运行、检查是否加载
chmod 755 /etc/sysconfig/modules/ipvs.module && bash /etc/sysconfig/modules/ipvs.module && lsmod | grep -e ip_vs -e nf_conntrack
七、安装Kubernetes集群
1、为所有节点配置kubernetes源,安装kubelet、kubeadm、kubectl、kubernetes-cni
# 此操作会覆盖 /etc/yum.repos.d/kubernetes.repo 中现存的所有配置
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
#exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
#安装kubelet、kubeadm、kubectl、kubernetes-cni
yum install -y kubelet kubeadm kubectl kubernetes-cni
systemctl enable kubelet.service
2、在k8s-master节点执行kubeadm初始化操作
kubeadm init --node-name=k8s-master \
--image-repository=registry.aliyuncs.com/google_containers \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--apiserver-advertise-address=192.168.139.136 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.139.136:6443 --token 9osa78.wfdxqa557cuelrfp \
--discovery-token-ca-cert-hash sha256:947adc517abfdd9c665b2454aeed5c9275c6444e86e09959d5c37ae7183fa751
更多推荐
所有评论(0)