首页 > 系统相关 >centos7搭建kubernetes-v1.25.1集群(Containerd作为运行时)

centos7搭建kubernetes-v1.25.1集群(Containerd作为运行时)

时间:2023-12-12 17:35:51浏览次数:36  
标签:kubeadm kubernetes -- Containerd centos7 yum docker com 节点

集群配置

节点名称内存硬盘处理器内核总数ip
master 6GB 40GB 6 192.168.67.166
node1 6GB 40GB 6 192.168.67.167
node2 6GB 40GB 6 192.168.67.168

一、所有节点更改镜像源

curl -o /etc/yum.repos.d/CentOS-Base.repo 

二、所有节点安装docker,注意:K8s在1.24以上版本将不再直接支持Docker,因此需要将Kubernetes的Runtime改为Containerd。(安装Docker时会自动安装Containerd)

-- Docker CE 的软件源信息添加到 YUM 软件包管理器的配置中,系统默认镜像不包含docker-ce
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

-- 卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

-- 下载docker-ce
sudo yum install -y docker-ce-20.10.* docker-ce-cli-20.10.* 


-- 配置镜像加速https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://sfpt7y1n.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

三、所有节点对系统进行配置修改

-- 禁用selinux,让容器可以读取主机文件系统
sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久

-- 关闭swap分区
sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久
-- 重启生效
reboot

-- 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

-- 配置hosts
sudo tee -a /etc/hosts <<EOF
192.168.67.166 master
192.168.67.167 node1
192.168.67.168 node2
EOF

四、所有节点配置k8s的yum仓库

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=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF

-- 导入密钥
rpm --import https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
rpm --import https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

五、所有节点安装kubelet,kubeadm,kubelet

yum install -y kubelet-1.25.1-0 kubeadm-1.25.1-0 kubectl-1.25.1-0

六、master节点执行

-- 生成kubeadm配置模板
kubeadm config print init-defaults > kubeadm-config.yaml

-- 编辑此配置文件
-- 修改advertiseAddress字段为本机地址
-- 检查criSocket地址是否为下图中所示
-- 检查kubernetesVersion,应与kubeadm version查询得到的版本一致
-- 将imageRepository字段改为registry.cn-hangzhou.aliyuncs.com/google_containers
-- 将name字段改为当前master节点的名字
vi kubeadm-config.yaml

 -- master节点执行`kubeadm config images list`查看所需下载镜像

 

-- 更改镜像地址,拉取每个镜像
systemctl start docker
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.25.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.25.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.25.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.25.16
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.8
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.4-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.9.3

七、Containerd作为容器运行时(所有节点执行)

-- 所有节点配置Containerd所需模块,确保在系统启动时自动加载这两个内核模块
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

-- 所有节点加载模块
modprobe -- overlay
modprobe -- br_netfilter

-- 所有节点配置Containerd所需内核,为 Kubernetes 的 CRI 和相关网络功能提供支持
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

-- 所有节点加载内核
sysctl --system

-- 所有节点配置Containerd的配置文件
mkdir  -p  /etc/containerd
containerd config default | tee /etc/containerd/config.toml
-- 将containerd.runtimes.runc.options中的SystemdCgroup字段修改为true
-- tips:进入vi编辑器,按下Esc,底部栏输入 /SystemdCgroup 即可快速定位
-- 接下来将sandbox_image的Pause镜像修改为适合自己版本的地址,可参考第6步中Pause的地址
-- 修改完这两处后保存退出
vi /etc/containerd/config.toml

-- 所有节点设置Containerd开机启动
systemctl daemon-reload
systemctl enable --now containerd
systemctl restart containerd

-- 所有节点配置crictl客户端连接的Runtime位置
cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint:unix:///run/containerd/containerd.sock
timeout:10
debug:false
EOF

 八、初始化集群(master节点执行)

-- containerd作为runtime,设置开机自启
systemctl enable --now kubelet

kubeadm init --config kubeadm-config.yaml

-- 若初始化失败,需要检查各项配置是否正确,之后再次初始化,清理命令如下
kubeadm reset -f ; ipvsadm --clear ; rm -rf ~/.kube

初始化成功后如下所示:(注意框出的部分)

 

-- 在master节点执行上图框出的第一部分:
    mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

-- 在其余node节点执行框出的第二部分:
kubeadm join 192.168.67.166:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:4f35a9073247215976789e99c5f274e8bac36b88b8264252daf60dfd85c16b4b

在master节点输入kubectl get node,显示如下

 现在配置网络,以calico为例(https://docs.tigera.io/calico/3.25/getting-started/kubernetes/self-managed-onprem/onpremises

-- 获取官方模板,在master节点执行
curl https://raw.githubusercontent.com/projectcalico/calico/v3.25.2/manifests/calico.yaml -O
kubectl apply -f calico.yaml

等一小会,再次执行kubectl get node

 至此集群搭建成功


 

标签:kubeadm,kubernetes,--,Containerd,centos7,yum,docker,com,节点
From: https://www.cnblogs.com/bigbear-xx/p/17897383.html

相关文章

  • Redhat7或Centos7自带Yum源卸载并安装国内Yum源
    自带Yum源卸载由于操作yum源涉及到权限,我们使用的普通用户是无法操作的。这里我们要登陆超级权限账号。(默认账号是root,如果你在安装时修改过就把下面命令的root修改为你安装输入的账号名)注意:这里回车后输入密码是不显示的,密码也是你安装时填写的。输入好密码回车,下一条左边就会......
  • 云原生周刊:Kubernetes v1.29 新特性一览 | 2023.12.11
    开源项目推荐kubedogKubedog是一个用于在CI/CD部署管道中监视和跟踪Kubernetes资源的库。这个库被用于werfCI/CD工具中,在部署过程中跟踪资源。RunWhenLocalrunwhen-local是一个工具,用于在本地环境中运行runwhen脚本。runwhen是一个灵活的任务调度工具,可以根据条......
  • CentOS7 扩容
    1.修改虚拟机磁盘容量例如之前虚拟机磁盘空间为30G,现要将磁盘容量设置为50G打开虚拟机(必须处于关机状态),点击【编辑虚拟机设置】,然后点击【磁盘】,接着点击【扩展】,输入修改后的最大磁盘容量50G,具体操作时最大容量根据自己的需求设置即可。   输入完成最大磁盘容量后,点击......
  • CentOS7.6安装docker一把成
    新建虚拟机或云主机,连通网络后刷此脚本安装docker#卸载旧docker安装新dockeryumremovedockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-logrotatedocker-engineyuminstall-yyum-utilsdevice-mapper-persiste......
  • CentOS7.6安装python3.6.8一把成
    yum-yinstallvimunzipnet-tools&&yum-yinstallwget&&yum-yinstallbzip2&&yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel......
  • centos7 docker-ce
    言Docker使用越来越多,安装也很简单,本次记录一下基本的步骤。Docker目前支持CentOS7及以后的版本,内核要求至少为3.10。Docker官网有安装步骤,本文只是记录一下,您也可以参考DockerCEInstallonCentOS环境说明CentOS7(MinimalInstall)$cat/etc/redhat-releaseCentOSLinu......
  • 在CentOS7等老系统上配置clangd进行C/C++开发
    应该有许多公司开发机器上还是用着比较老的环境,比如CentOS7之类的。这类系统上很可能他的glibc的版本不到2.18,clangd要求的最低glibc版本就是2.18,因此我们没办法直接在这类老系统上运行clangd。但是vscode上微软的那个c++插件一坨史,慢不说,补全也差劲。我的要求有几点:不能升级......
  • 超算集群安装OpenFOAM-LIGGGHTS-CFDEM(普通用户权限-以CSU HPC CentOS7.9为例)
    普通用户权限超算集群安装OpenFOAM-LIGGGHTS-CFDEM,由于缺少root权限,无法根据CFDEM官方instruction进行安装。本文以CSU超算平台为例,利用普通用户权限进行编译安装。文章修正了已有教程中部分问题,特别感谢希望先生与记得小蘋初见教程。1.安装必要依赖包此部分在记得小蘋初见中......
  • CICD 小提示:Jenkins 部署在 Kubernetes 集群中如何暴露服务?
    本文是 此长文中的部分内容,方便初学者照着操作。Jenkins部署详细步骤略,参考文章:https://md.huanghuanhui.com/RuoYi-Cloud/RuoYi-Cloud.html服务暴露细节Jenkins共需要暴露两个服务到外部,一个是web服务,用于管理操作,默认使用8080端口,另一个为Agent连接的服务,默认使用5000......
  • centos7安装jdk8
    1.去oracle官网下载jdk1.8,需要注册,下载后缀为.tar.gz,比如jdk-8u381-linux-x64.tar.gz2.上传到服务器,解压建立文件夹,将java安装到指定目录mkdir-p/home/java8由于java的安装包解压后默认套了一层,解压后默认会有jdk1.8.0_381这一层文件夹,我不想要,所以解压的时候......