首页 > 系统相关 >最新centos7 部署 k8s v1.26,简单易懂,跟着命令敲就完事

最新centos7 部署 k8s v1.26,简单易懂,跟着命令敲就完事

时间:2023-04-04 23:44:49浏览次数:46  
标签:kubernetes -- containerd centos7 etc yum v1.26 k8s

其实没什么好说的,搭环境搞了一整天,人已经麻了,踩了很多坑,网上教程的版本大都比较旧,总是和最新版本各种地方不兼容,把坑踩完了,k8s目前最新的版本是v1.26,跟着命令敲就行了,我已经重复部署了很多次了,坑已经排完了....

我试验的是1主2从结构,centos 2c2g 就足够。

centos7 部署 k8s 1m2n

1 系统环境准备

1.1 配置主机名

[root@localhost ~]# hostnamectl set-hostname master0

[root@localhost ~]# cat /etc/hosts
192.168.19.128 master0
192.168.19.129 node0
192.168.19.130 node1
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

1.2 关闭selinux

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

1.3 配置ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.19.129
GATEWAY=192.168.19.2
NETMASK=255.255.255.0
DNS1=8.8.8.8

service network restart
# 关闭swap
swapoff -a  
sed -ri 's/.*swap.*/#&/' /etc/fstab

1.4 安装ipvs 转发支持 【所有节点】

# 系统依赖包
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

# 开启ipvs 转发
modprobe br_netfilter 

cat > /etc/sysconfig/modules/ipvs.modules << EOF 
#!/bin/bash 
modprobe -- ip_vs 
modprobe -- ip_vs_rr 
modprobe -- ip_vs_wrr 
modprobe -- ip_vs_sh 
modprobe -- nf_conntrack
EOF 

chmod 755 /etc/sysconfig/modules/ipvs.modules 
bash /etc/sysconfig/modules/ipvs.modules 
lsmod | grep -e ip_vs -e nf_conntrack

1.5 安装containerd [全部节点安装]

# 创建 /etc/modules-load.d/containerd.conf 配置文件:

cat << EOF > /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter
# 获取阿里云YUM源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 下载安装:
yum install -y containerd.io

1.6 配置containerd [所有节点]

# 生成containerd的配置文件
mkdir /etc/containerd -p 

# 生成配置文件
containerd config default > /etc/containerd/config.toml

# 编辑配置文件
vim /etc/containerd/config.toml

将 sandbox_image = "k8s.gcr.io/pause:3.6" 
改为:sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6"


systemctl enable containerd
systemctl start containerd

二:安装k8s 1.26.x

2.1 配置 k8s 1.26 的yum 源

# 添加阿里云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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum makecache 

2.2 安装kubeadm,kubelet和kubectl

# 目前最新版本是1.26.0,我们直接上最新版
yum install -y kubectl kubelet kubeadm

# 设置kubelet为开机自启动即可,由于没有生成配置文件,集群初始化后自动启动
systemctl enable kubelet

# 准备k8s  1.26.0 所需要的镜像
kubeadm config images list --kubernetes-version=v1.26.0

2.3 集群初始化

# 使用kubeadm init命令初始化
#在master0上执行,报错请看k8s报错汇总
echo 1 > /proc/sys/net/ipv4/ip_forward 
kubeadm init --kubernetes-version=v1.26.0 --pod-network-cidr=10.224.0.0/16 --apiserver-advertise-address=192.168.19.128 --image-repository registry.aliyuncs.com/google_containers

# 注释
# --apiserver-advertise-address 集群通告地址(此处设置为 master0 地址)
# --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
# --kubernetes-version K8s版本,与上面安装的一致
# --service-cidr 集群内部虚拟网络,Pod统一访问入口
# --pod-network-cidr Pod网络,,与下面部署的CNI网络组件yaml中保持一致

# 上面命令执行完后,会生成两条提示,分别执行
# root 用户,master0 上执行
export KUBECONFIG=/etc/kubernetes/admin.conf

# 其它节点加入集群
kubeadm join 192.168.19.128:6443 --token pb1jpq.ogibtvmpk29l7pol \
	--discovery-token-ca-cert-hash sha256:099131e6bfc2d69a9d68b3ee52e2d29bce0ad8b5193ffe2559d231c63713a04a


2.5 集群部署网络插件

# 网络组件有很多种,只需要部署其中一个即可,推荐Calico。
# Calico是一个纯三层的数据中心网络方案,Calico支持广泛的平台,包括Kubernetes、OpenStack等。
# Calico 在每一个计算节点利用 Linux Kernel 实现了一个高效的虚拟路由器( vRouter) 来负责数据转发,而每个 vRouter 通过 BGP # 协议负责把自己上运行的 workload 的路由信息向整个 Calico 网络内传播。
# 此外,Calico 项目还实现了 Kubernetes 网络策略,提供ACL功能。
# 下载Calico
wget http://manongbiji.oss-cn-beijing.aliyuncs.com/ittailkshow/k8s/download/calico.yaml
kubectl apply -f calico.yaml
# 查看节点:
kubectl get node 

常用命令

# 查询node
kubectl get nodes -o wide

# 查询 pod
kubectl get pods -o wide (-A 查询全部pod --namespace=‘default’ 默认查询命名空间为default的)

# 查看pod详情
kubectl describe pod <pod name>

标签:kubernetes,--,containerd,centos7,etc,yum,v1.26,k8s
From: https://www.cnblogs.com/Fzeng/p/17288286.html

相关文章

  • 44、K8S-调度机制-理论知识
    1、调度体系1.1、流程图1.1.1、架构层面-集群的组成1.1.2、资源层面-k8s集群资源的管控1.1.3、网络层面-k8s集群资源的访问1.1.4、认证层面-k8s集群资源的认证1.1.5、pod周期-pod创建的完整流程1.1.6、pod创建流程  1.1.7、存储层面 1.1.8、创建层面-资源......
  • Kubernetes——问题与解决方案一、k8s重启报错 :The connection to the server 192.168
    摘要Kubernetes运行过程中出现的各种问题,因此本人整理出本人遇到的有关于的k8s的相关问题和解决方案一、k8s重启报错:Theconnectiontotheserver192.168.102.149:6443wasrefused1.1现象k8s重启报错#kubectlgetpodsTheconnectiontotheserverxxx:6443wasrefused......
  • 43、K8S-网络机制之网络策略、流量管控、NetworkPolicy、GlobalNetworkPolicy
    Kubernetes学习目录1、基础知识1.1、k8s策略1.1.1、想象中的策略到现在为止,我们之前操作过的k8s资源对象中,跟策略相关的无非就是权限认证-权限认证主要是与用户登录和资源使用有关系命名空间-命名空间可以将我们相关的资源进行隔离,但是我们可以通过"命名空间.资源对象......
  • centos7/centos8 PHP7.2/php7.3/php7.4 以上版本 源码安装 编译
    yumupdate  1、安装依赖包[root@centos7_4~]#yum-yinstallphp-mcryptlibmcryptlibmcrypt-devel autoconf freetypegdlibmcryptlibpnglibpng-devellibjpeglibxml2libxml2-develzlibcurlcurl-develre2cnet-snmp-devellibjpeg-develphp-ldapopenl......
  • CentOS7 卸载mysql(YUM源方式)
     防止重装yum方式查看yum是否安装过mysqlyumlistinstalledmysql*如或显示了列表,说明系统中有MySQLyum卸载 根据列表上的名字 yumremovemysql-community-clientmysql-community-commonmysql-community-libsmysql-community-libs-compatmysql-commun......
  • 实战篇:使用rook在k8s上搭建ceph集群
    写在开篇“上一次,我发了一篇:《理论篇:让我们一起鲁克鲁克——rook(开源存储编排)》。这次,来一篇实战,使用rook在k8s上把ceph集群搞起来。后续,还会陆续分享如何对接k8s(作为k8s的后端存储)、以及分享一些在生产上的实践经验。”环境规划主机名IP角色数据磁盘k8s-a-mast......
  • CentOS7服务器搭建LAMP环境
    CentOS7.4上搭建LAMP环境,这里以centos7.4为例;工具/原料centos系统一台安全组放行80,22端口关闭防火墙和SELinux安装Apache方法/步骤使用的例子:服务器版本内核。2Xshell连接到您的服务器上,使系统处于最新状态执行以下命令,查看centos版本lsb_release-a更新centos系统yum-yupdate......
  • k8s 资源限制层级
    对pod和container的资源设置数值限制,如果值不符合下面设置则启动报错apiVersion:v1kind:LimitRangemetadata:name:limitrange-magedunamespace:mageduspec:limits:-type:Container#限制的资源类型max:cpu:"2"#限制单个容......
  • k8s work节点重新获取token
    在master节点重新生成token命令,然后在node子节点中执行kubuadmjoin命令kubeadmtokencreate--print-join-command如果网忘了证书的秘钥,可以在master节点执行以下命令opensslx509-pubkey-in/etc/kubernetes/pki/ca.crt|opensslrsa-pubin-outformder2>/dev/null......
  • 第5章 K8s
    5.1K8s基础5.1.3K8s核心特性K8s的主要特点:轻量级:下载后即可用;便携:可部署在公有云、私有云或混合云等任意环境;可扩展性:采用插件化的设计架构,每个模块都可插拔;K8s的核心功能:自动化的任务管理、对微服务架构体系的支撑以及最大化资源利用;自动化的任务管理:包括应用自动......