2

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

 1 year ago
source link: https://www.cnblogs.com/Fzeng/p/17288286.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

其实没什么好说的,搭环境搞了一整天,人已经麻了,踩了很多坑,网上教程的版本大都比较旧,总是和最新版本各种地方不兼容,把坑踩完了,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>



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK