centos安装部署Kubernetes(k8s)步骤使用kubeadm方式

这篇具有很好参考价值的文章主要介绍了centos安装部署Kubernetes(k8s)步骤使用kubeadm方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


机器地址:

192.168.0.35 k8s-master
192.168.0.39 k8s-node1
192.168.0.116 k8s-node2

1、修改系统配置

修改每台机器的名字

 hostnamectl set-hostname k8s-master
 hostnamectl set-hostname k8s-node1
 hostnamectl set-hostname k8s-node2

关闭防火墙和selinux

 systemctl stop firewalld && systemctl disable firewalld

临时关闭selinux:

setenforce 0

永久关闭:

vim /etc/selinux/config

修改selinux为disabled或者permissive 重启生效
centos安装kubernetes,centos,kubernetes,linux
配置本地解析

  echo '''
192.168.0.35 k8s-master
192.168.0.39 k8s-node1
192.168.0.116 k8s-node2
''' >> /etc/hosts

centos安装kubernetes,centos,kubernetes,linux
确保每个节点MAC地址和 product_uuid 的唯一性

你可以使用命令 ip linkifconfig -a 来获取网络接口的 MAC 地址
可以使用 sudo cat /sys/class/dmi/id/product_uuid 命令对 product_uuid 校验
一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。 Kubernetes 使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装失败。

同步时间
如果各机器上时间都没有问题,也没有偏差,则可以跳过该步骤。

# 安装ntp工具
yum install -y ntp

#设置时区
timedatectl set-timezone 'Asia/Shanghai'

# 同步时间
ntpdate ntp1.aliyun.com

升级内核
链接:linux(centos7.6–>7.9)内核升级
更新yum—版本高可以跳过此步骤

sudo yum update

2、安装docker应用

每个节点都需要下载

yum install -y yum-utils device-mapper-persistent-data lvm2 git

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce 

注意:
如果使用的挂载磁盘则需要更改docker的数据目录

如果是启动过的docker则需要停止docker服务 然后把 /var/lib/docker/目录下的数据移动到新的目录 mv /var/lib/docker/ /data/docker/

修改docker默认数据存储目录配置,在/etc/docker/daemon.json文件添加 以下内容,若是没有/etc/docker/daemon.json文件,则新建该文件

vim /etc/docker/daemon.json

{

 "data-root": "/data/docker"

}

启动docker

systemctl start docker   

systemctl enable docker
  设置开机自启

centos安装kubernetes,centos,kubernetes,linux

关闭swap分区

Kubernetes 1.8开始要求关闭系统的Swap,如果不关闭,默认配置下kubelet将无法启动。方法一,通过kubelet的启动参数–fail-swap-on=false更改这个限制。方法二,关闭系统的Swap。

每个节点都需要关闭

swapoff -a

vim /etc/fstab 注释掉SWAP的自动挂载
centos安装kubernetes,centos,kubernetes,linux
使用free -m查看是否关闭
centos安装kubernetes,centos,kubernetes,linux

3. 拉取docker镜像

初始化的时候,它会自动拉取镜像但是自动拉取用的是k8s官网的源地址容易失败所以手动拉取aliyun的镜像。注意拉取的docker镜像的版本必须要和kubelet、kubectl的版本保持一致。在下面初始化时直接指定阿里云的镜像。

vim dockerpull.sh

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.26.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.26.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.26.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.26.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.9.3
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.6-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9

执行脚本拉取镜像

bash dockerpull.sh 

看下镜像是否都拉取成功

docker images  

centos安装kubernetes,centos,kubernetes,linux

4、cri-dockerd安装

Kubernetes 的早期版本仅适用于特定的容器运行时:Docker Engine。 后来,Kubernetes 增加了对使用其他容器运行时的支持。为了实现编排器和许多不同的容器运行时之间交互操作创建了CRI 标准。 Docker Engine 没有实现(CRI)接口,所以Kubernetes 项目创建了特殊代码dockershim来帮助过渡,Dockershim 代码一直是一个临时解决方案(因此得名:shim)。 Kubernetes自v1.24移除了对Dockershim 的支持,而Docker Engine默认又不支持CRI规范,因而二者将无法直接完成整合。为此,Mirantis和Docker联合创建了cri-dockerd项目,用于为Docker Engine提供一个能够支持到CRI规范的垫片,从而能够让Kubernetes基于CRI控制Docker 。

注意部署最新版本XXXX 默认不在是使用docker容器,所以需要下载一个插件
所有节点都需要下载
https://github.com/Mirantis/cri-dockerd/releases

下载对应版本的cri-dockerd rpm包,注意版本和linux版本,也可以自行下载上传至所有主机

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm

安装
rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm

centos安装kubernetes,centos,kubernetes,linux

修改/usr/lib/systemd/system/cri-docker.service文件中ExecStart配置kubelet使用pause镜像

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


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

centos安装kubernetes,centos,kubernetes,linux
重新加载&现在启动

systemctl daemon-reload

systemctl enable --now cri-docker

加载ipvs相关内核模块

vim mod.sh

#!/bin/bash

modprobe ip_vs

modprobe ip_vs_rr

modprobe ip_vs_wrr

modprobe ip_vs_sh

modprobe nf_conntrack_ipv4

modprobe br_netfilter

centos安装kubernetes,centos,kubernetes,linux

chmod +x mod.sh

bash   mod.sh

centos安装kubernetes,centos,kubernetes,linux

scp mod.sh  k8s-node1:/root/   

scp mod.sh  k8s-node2:/root/ 

发送后记得执行一下

vim /etc/rc.local   如果重新开机,需要重新加载,需要写在 /etc/rc.local 中开机自动加载
添加这句 bash /root.mod.sh

centos安装kubernetes,centos,kubernetes,linux

chmod +x /etc/rc.local

配置转发相关参数,否则可能会出错

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

使配置生效

sysctl --system  

查看是否加载成功

lsmod | grep ip_vs

centos安装kubernetes,centos,kubernetes,linux

5、安装kubeadm和kubelet

所有节点都需要安装

  • 配置阿里云的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/rpm-package-key.gpg

EOF

拷贝到另外两台机器

 scp /etc/yum.repos.d/kubernetes.repo   k8s-node1:/etc/yum.repos.d/kubernetes.repo

 scp /etc/yum.repos.d/kubernetes.repo   k8s-node2:/etc/yum.repos.d/kubernetes.repo
  • 安装
yum makecache fast -y

yum install -y kubelet kubeadm kubectl ipvsadm

#注意,这样默认是下载最新版本

如果想下载旧版本,后面要跟上指定的版本号

yum install -y kubelet-1.22.2-0.x86_64 kubeadm-1.22.2-0.x86_64 kubectl-1.22.2-0.x86_64 ipvsadm  

启动kubelet

systemctl daemon-reload

systemctl enable kubelet && systemctl restart kubelet
systemctl status kubelet

centos安装kubernetes,centos,kubernetes,linux
(每个节点都会报错),不用管master节点初始化之后就好了。

  • 配置master节点初始化
  • kubeadm init --help可以查看命令的具体参数用法

在master节点执行初始化(node节点不用执行)

参数详情:

apiserver-advertise-address 指定apiserver的IP,即master节点的IP

image-repository 设置镜像仓库为国内的阿里云镜像仓库

kubernetes-version 设置k8s的版本,跟步骤三的kubeadm版本一致

service-cidr 这是设置node节点的网络的,暂时这样设置

pod-network-cidr 这是设置node节点的网络的,暂时这样设置

cri-socket 设置cri使用cri-dockerd
查看版本

kubeadm  version

centos安装kubernetes,centos,kubernetes,linux

kubeadm init --apiserver-advertise-address=192.168.0.35 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.27.2 --service-cidr=10.168.0.0/12 --pod-network-cidr=10.244.0.0/16 --cri-socket unix:///var/run/cri-dockerd.sock  --ignore-preflight-errors=all

执行完初始化的命令 查看一下回显是否成功 返回0为成功

echo $?

centos安装kubernetes,centos,kubernetes,linux

kubeadm join 192.168.0.35:6443 --token 62kh2k.7lfpud7ridya1it7 \
	--discovery-token-ca-cert-hash sha256:b55066a01216999577c2260bad6349ab8e293bff58ec9ea041b2c7c7bb51913e

centos安装kubernetes,centos,kubernetes,linux
初始化完成后根据提示的命令操作即可

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

如果使用的root用户可以操作这条命令

  export KUBECONFIG=/etc/kubernetes/admin.conf

可以查看到mastercentos安装kubernetes,centos,kubernetes,linux

6、配置flannel网络插件

完成master节点的时候k8s已经叫我们去配置pod网络了。在k8s系统上Pod网络的实现需要依赖于第三方插件进行种类有很多我们这里使用的flannel。

cd ~ && mkdir flannel && cd flannel
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

查看一下镜像版本随后使用docker拉取,所有节点都拉
vim kube-flannel.yml
centos安装kubernetes,centos,kubernetes,linux

centos安装kubernetes,centos,kubernetes,linux
拉取要用到的镜像所有节点都要拉取

docker pull docker.io/flannel/flannel:v0.22.0

docker pull docker.io/flannel/flannel-cni-plugin:v1.1.2

重新加载文件

kubectl apply -f kube-flannel.yml

centos安装kubernetes,centos,kubernetes,linux
查看一下master节点的状态

kubectl  get nodes

centos安装kubernetes,centos,kubernetes,linux
从NoReady 变成了 Ready 那么我们的flannel就部署好了

7、Node节点加入集群操作

Node1 节点操作

kubeadm join 192.168.0.35:6443 --token 62kh2k.7lfpud7ridya1it7 \
	--discovery-token-ca-cert-hash sha256:b55066a01216999577c2260bad6349ab8e293bff58ec9ea041b2c7c7bb51913e --cri-socket unix:///var/run/cri-dockerd.sock

centos安装kubernetes,centos,kubernetes,linux
再次查看状态,Node两个节点也已经加入成功
centos安装kubernetes,centos,kubernetes,linux
看下flannel运行状态

 kubectl get pods --namespace kube-flannel   

centos安装kubernetes,centos,kubernetes,linux
至此搭建完成。文章来源地址https://www.toymoban.com/news/detail-741623.html

到了这里,关于centos安装部署Kubernetes(k8s)步骤使用kubeadm方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS 7/8使用kubeadm部署kubernets(k8s)集群【附阿里云实验室】

    好消息好消息,阿里云全线降价,大量服务提供免费甚至永久的试用,赶紧来薅大厂羊毛吧,坐电梯即可直达! 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/1000370359/ 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/

    2023年04月22日
    浏览(40)
  • k8s(kubernetes)的两种部署方式(kubeadm)

    在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点禁止swap分区 角色 IP master 192.168.1.11 node1 192.16

    2024年02月22日
    浏览(56)
  • Centos7 安装部署 Kubernetes(k8s) 高可用集群

    宿主机系统 集群角色 服务器IP 主机名称 容器 centos7.6 master 192.168.2.150 ks-m1 docker centos7.6 master 192.168.2.151 ks-n1 docker centos7.6 master 192.168.2.152 ks-n2 docker 1.1 服务器初始化及网络配置 VMware安装Centos7并初始化网络使外部可以访问** 注意事项:请一定要看完上面这篇文章再执行下面的操

    2024年02月03日
    浏览(56)
  • 云原生Kubernetes:Kubeadm部署K8S单Master架构

    目录 一、理论 1.kubeadm 2.Kubeadm部署K8S单Master架构 3.环境部署 4.所有节点安装docker 5.所有节点安装kubeadm,kubelet和kubectl 6.部署K8S集群 7.安装dashboard 8.安装Harbor私有仓库 9.内核参数优化方案 二、实验 1.Kubeadm部署K8S单Master架构 2. 部署流程  3.环境部署 4.所有节点安装docker 5.所有节

    2024年02月10日
    浏览(54)
  • CentOS 7/8使用kubeadm部署kubernets(k8s)集群【附阿里云实验室】内有福利

    好消息好消息,阿里云全线降价,大量服务提供免费甚至永久的试用,赶紧来薅大厂羊毛吧,坐电梯即可直达! 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/1000370359/ 送福利!阿里云热门产品免费领(含ECS),点击进入 :https://click.aliyun.com/m/

    2023年04月27日
    浏览(44)
  • Kubernetes实战(九)-kubeadm安装k8s集群

    ip hostname 10.220.43.203 ops-master-1 10.220.43.204 ops-worker-1 10.220.43.205 ops-worker-2 master/与worker主机均需要设置。 master/worker均安装 docker二进制安装参考:docker部署及常用命令-CSDN博客  为kubernetes添加国内阿里云YUM软件源 。 如果k8s版本低于1.24版,可以忽略此步骤。 由于1.24版本不能直接

    2024年02月04日
    浏览(47)
  • Amazon Linux2使用kubeadm部署安装K8S集群

    在AWS上启动3台Amazon Linux2的服务器,服务器配置为2vcpu 和2GB内存 1. 修改主机名(可选步骤) 2.导入k8s的yum仓库密钥 3. 配置kubernetes源 4. 部署安装kubeadm、kubectl、docker,并且启动docker 5. 在master节点上执行初始化 具体初始化过程如下 [init] Using Kubernetes version: v1.27.1 [preflight] Runni

    2024年02月06日
    浏览(47)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.27.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS7.8 1、关闭防火墙 2、配置域名解

    2024年02月08日
    浏览(75)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 容器运行时本次使用containerd。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS

    2024年02月10日
    浏览(42)
  • 一、kubeadm部署Kubernetes(k8s) 1.23.0多主高可用集群

    Kubernetes介绍 kubernetes(k8s)是2015年由Google公司基于Go语言编写的一款开源的容器集群编排系统,用于自动化容器的部署、扩缩容和管理; kubernetes(k8s)是基于Google内部的Borg系统的特征开发的一个版本,集成了Borg系统大部分优势; 官方地址:https://Kubernetes.io 代码托管平台:

    2024年03月25日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包