K8S 集群搭建——cri-dockerd版

目录

一、工作准备

1.配置主机名

2.配置hosts解析

3.配置免密登录(只需要在master上操作)

4.时间同步(每台节点都要做,必做,否则可能会因为时间不同步导致集群初始化失败)

5.关闭系统防火墙

6.配置内核转发及网桥过滤

7.启用IPVS

8.关闭SWAP分区

二、容器工作时工具安装

1.安装Docker

2.安装cri-dockerd

[三、安装 k8s](#三、安装 k8s)

[四、k8s集群初始化 (只在master节点上面操作)](#四、k8s集群初始化 (只在master节点上面操作))

1.创建初始化文件

2.修改初始化文件

3.初始化

4.根据系统提示创建具体文件

[五、k8s 集群 node 节点加入(在node1和node2上操作)](#五、k8s 集群 node 节点加入(在node1和node2上操作))

​六、添加网络插件(在master上操作)

执行安装Calico:

七、查看、验证


一、工作准备

机器:3台机器【一台master(集群的控制平面,负责集群的决策/管理),两台node机器(集群的数据平面,负责为容器提供运行环境)】

参数:2核1线程,4G内存,20G硬盘

系统:OpenEuler

IP分配:

主机名 IP地址 节点
k8s-master 192.168.8.154 master
k8s-node-01 192.168.8.157 node1
k8s-node-02 192.168.8.158 node2

本实验除了备注只需在master操作外,其他的都需要在每个节点上面操作

1.配置主机名

hostnamectl set-hostname k8s-master / k8s-node01 / k8s-node02

2.配置hosts解析

cat >> /etc/hosts <<END

192.168.8.154 k8s-master

192.168.8.157 k8s-node01

192.168.8.158 k8s-node02

END

3.配置免密登录(只需要在master上操作)

ssh-keygen -t rsa

ssh-copy-id k8s-node01、k8s-node02 #复制给node机器

4.时间同步(每台节点都要做,必做,否则可能会因为时间不同步导致集群初始化失败)

yum install chrony -y #同步到同一时钟服务器上

systemctl restart chronyd #重启服务

chronyc sources #验证时间同步

5.关闭系统防火墙

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/enforcing/disabled/' /etc/selinux/config

6.配置内核转发及网桥过滤

#修改配置文件

vim /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

vm.swappiness = 0

#加载 br_netfilter 模块

modprobe br_netfilter

#查看是否加载

lsmod | grep br_netfilter

#使新添加的配置文件生效

sysctl -p /etc/sysctl.d/k8s.conf

7.启用IPVS

vim /etc/sysconfig/modules/ipvs.modules

#!/bin/bash

ipvs_modules="ip_vs ip_vs_wlc ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack"

for kernel_module in ${ipvs_modules}

do

/usr/sbin/modinfo -F filename ${kernel_module} >/dev/null 2>&1

if [ $? -eq 0 ]

then

/usr/sbin/modprobe ${kernel_module}

fi

done

然后给该文件添加执行权限

chmod +x /etc/sysconfig/modules/ipvs.modules

bash /etc/sysconfig/modules/ipvs.modules

8.关闭SWAP分区

临时关闭:swapoff -a

永久关闭:sed -i 's/.*swap.*/#&/' /etc/fstab

二、容器工作时工具安装

1.安装Docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#openEuler 系统在跟换源后需要将/etc/yum.repos.d/kubernetes.repo 中的$release 跟换成 8

yum install docker-ce

#开启docker 服务

systemctl enable --now docker

#然后配置国内镜像加速器

vim /etc/docker/daemon.json

{

"exec-opts": ["native.cgroupdriver=systemd"],

"registry-mirrors": [

"https://docker.m.daocloud.io",

"https://hub-mirror.c.163.com",

"https://mirror.baidubce.com",

"https://docker.nju.edu.cn"

]

}

2.安装cri-dockerd

下载cri-dockerd 的rpm包 ==> 上传 ==> yum install ==> 开机自启动

然后修改里面的配置文件:

vim /usr/lib/systemd/system/cri-docker-service

修改第11行:

ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

然后重载 ==> 开机自启 ==> 检查组件状态

systemctl daemon-reload && systemctl enable cri-docker.socket && systemctl status cri-docker.socket cri-docker docker

三、安装 k8s

更换kubernets的软件源 vim /etc/yum.repo.d/kubernets.repo

kubernetes

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/

enabled=1

gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.key

yum clean all && yum makecache

#下载,重启

  1. yum install kubeadm-1.27.2 kubelet-1.27.2 kubectl-1.27.2 -y

  2. systemctl enable kubelet && systemctl start kubelet

四、k8s集群初始化 (只在master节点上面操作)

1.创建初始化文件

root@k8s-master \~\]#kubeadm config print init-defaultsb \> kubeadm-init.yaml

2.修改初始化文件

root@k8s-master \~\]# vim kubeadm-init.yaml 12行:advertiseAddress: 192.168.8.154 #master的ip地址 15行:criSocket: unix:///var/run/cri-dockerd.sock 17行:name: k8s-master #master的主机名 30行:imageRepository: registry.aliyuncs.com/google_containers #改成阿里云镜像代理地址

3.初始化

root@k8s-master \~\]# systemctl restart containerd \[root@k8s-master \~\]# systemctl restart kubelet \[root@k8s-master \~\]# kubeadm init --config=kubeadm-init.yaml --upload-certs --v=6

4.根据系统提示创建具体文件

然后根据初始化给的提示复制上面第一个到 node1 和 node2 节点上

五、k8s 集群 node 节点加入(在node1和node2上操作)

执行 kubeadm join 命令将节点加入集群:

六、添加网络插件(在master上操作)

执行安装Calico:

kubernetes支持多种网络插件,比如flannel、calico、canal等,任选一种即可

在Master节点上获取calico配置文件(可能会失败,如果失败,请下载到本地,然后安装)

复制代码
kubectl create -f 
https://raw.githubusercontent.com/projectcalico/calico/v3.25.1/manifests/calico.yaml

1、比如我将下载好的配置文件上传到master节点上:

2、然后再进行安装:kubectl create -f calico.yaml

3、查看pod状态,如果是Running 状态就代表成功了,如果不是就代表有问题

七、查看、验证

root@k8s-master \~\]# kubectl get no -o wide \[root@k8s-master \~\]# kubectl get pod -n kube-system \[root@k8s-master \~\]# kubectl get cs

到这里一个一主两从的k8s集群已经搭建好了。
相关推荐
maosheng114612 分钟前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken1 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2911 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C1 小时前
CPU Cache
linux·cache
Hoshino.412 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
Lxinccode2 小时前
docker(28) : 别名配置
docker·容器·eureka·docker别名
播播资源4 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry4 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
学不完的4 小时前
Docker数据卷管理及优化
运维·docker·容器·eureka
lay_liu4 小时前
Linux安装redis
linux·运维·redis