一、环境介绍

1、Windows 11 专业版,VMware Workstation 17,XShell、XFtp、openEuler-22.03-LTS-SP3

2、Kubernets集群节点规划

节点名称节点IP地址集群角色处理器数量内存大小磁盘空间
k8s-master1192.168.139.136master68G100G
k8s-node1192.168.139.137worker68G100G
k8s-node1192.168.139.138worker68G100G

二、Open Euler系统安装

1、下载Open Euler系统 (Link),选择 X86_64/服务器/Offline Everything ISO

9fe1cd4ea4054462b45cbd0132998eee.png

2、启动VWmare workstation 17,创建新的虚拟机

6f276ea70d9d44d98239613a1a5dad2c.png

3、选择“典型(推荐)”选项,点击“下一步”

06432683be1b4409a19b9b01e92c3338.png

4、点击“浏览”按钮,指定OpenEuler安装包位置,点击“下一步”

47e59e00758445c98b13c0286276e2b9.png

5、由于系统无法识别安装镜像操作系统类型,所以需要指定客户机操作系统内核类型为“Linux”,版本选择“CentOS 8 64位”,然后点击“下一步”

f9043f3f18384ed1894970e84df5f72e.png

6、指定虚拟机名称,以及虚拟机文件存储位置

a3e2c98d47cc45d99dcfe3241ce6263a.png

7、指定虚拟机使用的磁盘容量:100G

1b00a0b7baba4ea2992d7315cb06c7be.png

8、点击“自定义硬件”按钮打开虚拟机硬件资源设置窗口

966875ab49c54c1aac271770be898406.png

9、拖动滑块指定内存大小:8G

18839054b3ab43b2a7eee0c2002e5f0e.png

10、点击下拉列表,选择处理器内核数量6

a8efa217bd3649d693dd9f4428e90713.png

11、设置完成后,点击“关闭”按钮,返回虚拟机创建主界面,点击绿色三角按钮,开启此虚拟机

3857f4e81ed440489cbdfd396420d349.png

f2aa8dc8ff41497194569d24c1273f9f.png

12、选择语言为“English”

aae3ad30c4f94741b7dd338846463306.png

13、一次点击对话框中黄色感叹号图标,进行参数设置

30cbaf37cb024d32951b19a71b279570.png

c12616a37d34441eb5e04fe45d05271b.png

c269fbd0229c48768fa9b60590eab327.png

ce83e2a48cfb4012b7eb0f4702fbc677.png

14、点击“Reboot System”完成系统安装

77d04f9dcb264be3819a92a6332a4e9a.png

15、系统成功后,使用root账号登录系统

4cbe3a46152146ef90aea75e587a920b.png

16、重复上述步骤,完成另外两个节点k8s-node1、k8s-node2的安装

三、初次登录虚拟机节点

1、打开XShell工具登录三台虚拟机节点

b1107bf21c8d4bd98d604f711285e411.png

2、对于所有节点,同时安装tar工具,方便后续使用

yum install tar

63f2427319434cf9a6b6f5c74934d786.png

四、为所有节点安装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

1aee2b6d04024c42ae6c2e8b64aa7766.png

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

7bfe214d1e9d41f5b05ec9d9d704dffd.png

3、启动Docker容器,并检查容器运行状态

systemctl start docker
systemctl enable docker
systemctl status docker

ec9ee8bf880942678a38a20791f2a4c6.png

五、为所有节点安装cri-dockerd

1、下载最新版cri-dockerd rpm包

由于众所周知原因,无法直接使用wget下载,所以,直接从github镜像网站下载安装包上传到虚拟机“/toos/”目录进行安装(下载地址),本案例使用版本为:cri-dockerd-0.3.9-3.el8.x86_64.rpm

f8eac09662074aab911ce32d72302119.png

a13d36d782a942bd9b61160fb5efe8eb.png

2、安装cri-dockerd

rpm -ivh cri-dockerd-0.3.9-3.el7.x86_64.rpm

728e1b5a49a143b8baabfd104c53932c.png

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

97f9f4db3d5a443dbee3e75c9d003173.png

4、启动cri-dockerd服务

systemctl start cri-docker
systemctl enable cri-docker

3ff884440dd0441894efa0e981764fc1.png

5、重启Docker容器,并检查容器运行状态

systemctl daemon-reload && systemctl restart docker cri-docker.socket cri-docker 
systemctl status docker cir-docker.socket cri-docker

0ab6f3e86b3e494fbb6386971165977d.png

六、为所有节点执行kubernetes安装前准备

1、分别登录每个节点,逐一设置节点名称

#分别登录每个节点,逐一机器配置主机名

#k8s-master
hostnamectl set-hostname k8s-master

#k8s-node1
hostnamectl set-hostname k8s-node1

#k8s-node2
hostnamectl set-hostname k8s-node2

ece5ddb4c6b543358f941719fee5de3f.png

2、分别登录每个节点,查看节点IP配置信息

cd /etc/sysconfig/network-scripts
ll

aeb296a018854822958e7a0e36967f05.png

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

d3ecbe10bd5d4586953a9a39d8091f12.png4、分别登录每个节点,完成主机名与IP的映射

vi /etc/hosts

52217a1f898d451687eee1e48157f361.png

5、关闭所有节点防火墙,并禁止开机自动启动

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

ad440a933b234bae979d165a66e6e962.png

6、关闭所有节点selinux,并重启主机

sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config
reboot

7、为所有节点配置时间自动同步

#安装ntpdate软件
yum  -y install ntpdate

66a16d4e15ac40c6a44b1b0c7e90437c.png

#创建计划任务
#设置事件同步规则
#0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com
crontab -e

b49e036031a343fd9d258e09e3bce9e4.png

# 启动时间同步,一个小时同步一次
ntpdate time1.aliyun.com

 8、为所有节点配置内核转发及网桥过滤

#修改内容:
#net.ipv4.ip_forward=1

vi /etc/sysctl.conf

2262b1b956ca49b48d95d458cada1f2f.png

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

3863180357914688a52cd26b57f026aa.png

# 加载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

cee6675f8d7543ed9c88c9e7cd8e50f9.png 七、安装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

b2ab5fefe87f4e06bca5ede0dfb0f7e5.png 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

545667cfa24448c088c50f1e25827d06.pngYour 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 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐