目录

一、部署准备工作

二、Master安装


一、部署准备工作

最小化搭建 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集群搭建完成

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐