一、【K8S】CentOS 7使用kubeadm详细流程搭建Kubernets V1.25集群
使用镜像仓库registry.aliyuncs.com/google_containers来拉取Kubernetes相关的容器镜像。至此 master节点已经部署完毕了,克隆master节点,并修改另外两台机器的ip地址以及主机名,创建work节点。- 使用API服务器的自宣传地址192.168.56.11来初始化Kubernetes集群。- 使用Kubernetes版本v1.25.0来初始化Ku
目录
一、部署准备工作
最小化搭建 master+node+node集群
虚拟机配置均为2核+2GB内存+20GB硬盘
工具 VMware + Xshell
先确定三台虚拟机的名字和ip
k8s-master 192.168.121.134
k8s-node1 192.168.121.135
k8s-node2 192.168.121.136
二、Master安装
1.关闭防火墙
sudo systemctl stop firewalld sudo systemctl disable firewalld
2.关闭 selinux
sudo sed -i 's/enforcing/disabled/' /etc/selinux/config
3.关闭 swap
sudo vim /etc/fstab # 永久关闭
#注释掉下列配置
# /dev/mapper/centos-swap swap swap defaults 0 0
4.重启机器
sudo systemctl reboot
free -m
# swap下的值都为0表示swap已被关闭
5.设置主机名
sudo hostnamectl set-hostname k8s-master
6.在 k8s-master机器添加hosts
vim /etc/hosts
# 插入以下语句
192.168.121.134 k8s-master
192.168.121.135 k8s-node1
192.168.121.136 k8s-node2
7.将桥接的IPv4流量传递到iptables
sudo cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 使其生效
sudo sysctl --system
8.设置时间同步
sudo yum install ntpdate -y
sudo ntpdate time.windows.com
9.添加k8s yum源
sudo cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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
10、安装containerd
# 安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置 yum 源
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install containerd -y
sudo containerd config default > /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl status containerd
# 替换 containerd 默认的 sand_box 镜像,编辑 /etc/containerd/config.toml
sudo vim /etc/containerd/config.toml
#找到 sandbox_image字段,修改为:
sandbox_image = "registry.aliyuncs.com/k8sxio/pause:3.9"
# 重启containerd
sudo systemctl daemon-reload
sudo systemctl restart containerd
11、配置containerd 中国镜像源
sudo vim /etc/containerd/config.toml
在 [plugins."io.containerd.grpc.v1.cri".registry] 下把 config_path 的值修改为 "/etc/containerd/certs.d"
sudo mkdir -p /etc/containerd/certs.d/docker.io
sudo vim /etc/containerd/certs.d/docker.io/config.toml
写入:
server = "https://docker.io"
[host."https://registry.docker-cn.com"]
sudo systemctl restart containerd
11、查看可以安装的版本
sudo yum list kubelet --showduplicates | sort -r
12、安装kubelet、kubeadm、kubectl 指定版本,我们使用kubeadm方式安装k8s集群
sudo yum install -y kubelet-1.25.0 kubeadm-1.25.0 kubectl-1.25.0
13.命令启动kubelet服务
sudo systemctl start kubelet
# 开机自启
sudo systemctl enable kubelet
至此 master节点已经部署完毕了,克隆master节点,并修改另外两台机器的ip地址以及主机名,创建work节点。
14、初始化(k8s-master)
这是一个用于初始化Kubernetes集群的命令。它的意思是:
- 使用API服务器的自宣传地址192.168.56.11来初始化Kubernetes集群。
- 使用镜像仓库registry.aliyuncs.com/google_containers来拉取Kubernetes相关的容器镜像。
- 使用Kubernetes版本v1.25.0来初始化Kubernetes集群。
- 使用服务CIDR为10.96.0.0/12来分配服务集群IP地址。
- 使用Pod网络CIDR为10.244.0.0/16来分配Pod网络IP地址。
# 初始化k8s ,使用中国镜像源拉取镜像apiserver-advertise-address为自己的主机地址
sudo kubeadm init --apiserver-advertise-address=192.168.121.134 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.25.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
#如果出现以下字符,说明初始化成功。
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.56.11:6443 --token s0d1qo.dbcwcms72y4y3j7x \
--discovery-token-ca-cert-hash sha256:5ad74702eebb9f3c254c3e48a68792e93e07f97c104cdd9b7f1fcf
初始化时报错
[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
执行以下命令然后重新初始化
modprobe br_netfilter
sysctl -p
若没出现
则手动编辑添加
vi /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
安装失败则执行以下命令再重新安装
kubeadm reset # 清除之前安装的组件和配置文件
rm -rf /etc/kubernetes/ # 删除Kubernetes配置文件
rm -rf .kube/ # 不删除则运行kubectl get nodes时报错
初始化init时出现Initial timeout of 40s passed,执行下列命令查看日志
journalctl -xeu kubelet
安装成功显示
三、Worker安装
node节点执行以下命令
kubeadm join 192.168.121.134:6443 --token yvfkxm.zjkefeo3pvvl4sqj \
--discovery-token-ca-cert-hash sha256:cef18677004142124720a763cb6e8c17dceb9d5f77a9f0dee8305e3170ceddd3
四、集群查看
1.在master家目录写入K8S的config
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
2.查询节点状态
kubectl get nodes
启动成功
至此 一个简单的k8s集群搭建完成
更多推荐
所有评论(0)