使用RKE搭建K8S
1、搭建前准备事宜:
三台Centos 7的机器【所需规格:2核4G,满足条件可以互相ping通】,可以是三台虚拟机,也可以是三台云服务器。
2、安装Docker
建议在Linux(推荐CentOs)环境下安装Docker 20 以上版本
# ==================================三台机器都需执行====================================
01 `卸载之前安装的docker`
sudo yum remove docker docker latest docker-latest-logrotate \
docker-logrotate docker-engine docker-client docker-client-latest docker-common
02 `安装必要依赖`
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
03 `添加软件源信息`
sudo yum-config-manager \
--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list | grep docker-ce
04 `更新yum缓存`
sudo yum makecache fast
05 `安装docker`
sudo yum install -y docker-ce
06 `启动docker并设置开机启动`
sudo systemctl start docker && sudo systemctl enable docker
07 `查看版本`
docker version
# ======================================================================================
Client: Docker Engine - Community
Version: 20.10.15
API version: 1.41
Go version: go1.17.9
Git commit: fd82621
Built: Thu May 5 13:16:58 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
# ======================================================================================
3、安装 Kubernetes 命令行工具 kubectl。
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" && chmod +x kubectl && cp kubectl /usr/bin/
# =====================================国内备用 ===========================================
curl -fL "https://kinshy-generic.pkg.coding.net/south/study/kubectl?version=latest" -o kubectl && chmod +x kubectl && cp kubectl /usr/bin/
4、安装RKE命令行工具(仅在主节点上安装即可)。
curl -LO "https://github.com/rancher/rke/releases/download/v1.3.10/rke_linux-amd64" && mv rke_linux-amd64 rke && chmod +x rke && ./rke --version && cp rke /usr/bin/
# =====================================国内备用 ===========================================
curl -fL "https://kinshy-generic.pkg.coding.net/south/study/rke?version=latest" -o rke && chmod +x rke && ./rke --version && cp rke /usr/bin/
5、进行机器配置
01 `禁用 SELinux`
/usr/sbin/sestatus -v |grep "SELinux status"
#结果为 enabled 为启用状态
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
02 `禁用 swap`
free -h
#total used free shared buff/cache available
#Mem: 7.8G 205M 6.9G 8.7M 715M 7.3G
#Swap: 5.0G 0B 5.0G
#Swap 有值代表启用了swap
vim /etc/fstab
使用 # 注释掉有 swap 的一行
03 `关闭防火墙`
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
04`重启查看修改是否生效`
reboot
/usr/sbin/sestatus -v |grep "SELinux status"
free -h
05 `CentOS7不能使用root用户安装`
adduser rke -G docker
#设置 RKE 用户密码
passwd rke
#尝试使用rke用户操作docker,观察是否有权限
su rke
docker ps
# ===========================在rke用户主节点操作,执行rke命令的机器================================
06`配置主节点到各个节点rke用户的免密登录`
#一路回车按到底
ssh-keygen
ssh-copy-id rke@节点IP
这个地方要给全部的机器配置ssh,包括自己
我三台机器,所以是:
ssh-copy-id rke@172.31.0.110
ssh-copy-id rke@172.31.0.115
ssh-copy-id rke@172.31.0.82
注意事项: 创建的用户名是区分大小写的,rke不可写成RKE。
07`测试 ssh 并执行 docker ps 看是否正常工作
ssh rke@节点IP
docker ps
6、创建rke.yaml[rke用户主节点执行]
vi rke.yaml
# =============yaml内容:记得修改三个节点IP为自己机器的IP=================
nodes:
- address: 172.31.0.110
user: rke
role: [controlplane, worker, etcd]
- address: 172.31.0.115
user: rke
role: [worker]
- address: 172.31.0.82
user: rke
role: [worker]
services:
etcd:
snapshot: true
creation: 6h
retention: 24h
ingress:
provider: nginx
options:
use-forwarded-headers: “true”
ded-headers: “true”
# ======================================================================
7、执行集群安装[rke用户主节点执行]
rke up --config rke.yaml
`注:该rke up 过程可能会很久,如果中断了重新执行即可。
# =====================运行完成后执行==============================
mkdir ~/.kube && mv kube_config_rke.yaml ~/.kube/config
# =====================查看节点,完成集群安装========================
kubectl get node
# ================================================================
NAME STATUS ROLES AGE VERSION
172.31.0.110 Ready controlplane,etcd,worker 14m v1.22.9
172.31.0.115 Ready worker 14m v1.22.9
172.31.0.82 Ready worker 14m v1.22.9
# ================================================================
注意:
REK安装K8S后,如果Ingress-nginx一直状态为ContainerCreating,请查阅解决方法