前言:这里的rke rancher docker 是安装最新版的,如果需要安装特定版本,一些细节请自行百度和查询官网
环境介绍
操作系统:centos7
硬件配置:内存8GB以上 cpu2核以上 硬盘大于30G
系统架构:3个节点,每个节点同时承担master和work两种角色
10.9.1.200 rke-node1
10.9.1.201 rke-node2
10.9.1.201 rke-node3
操作步骤
(一)前期准备
注意以下操作需要在所有节点以root用户进行
——配置阿里云yum源
cd /etc/yum.repos.d/
yum clean all
rm -rf ./*
curl -O http://mirrors.aliyun.com/repo/Centos-7.repo
curl -O http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
——修改对应主机名
vi /etc/hostname
——配置静态ip
不会的百度一下
——配置hosts
vi /etc/hosts
——添加rke用户
adduser -d /home/rke -m rke
passwd rke
——为rke用户添加sudo 权限
输入visudo打开文件
在文件末尾添加 rke ALL=(ALL) NOPASSWD:ALL
——关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
——关闭SELINUX
setenforce 0
vi /etc/selinux/config
把SELINUX改为disabled
——时间同步
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
yum -y install ntp
cd /usr/share/zoneinfo/Asia/
ntpdate pool.ntp.org
echo "*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1" >>/var/spool/cron/root
(二)安装docker(注意:不同版本的k8s支持的docker版本不一样,我这里安装的是最新版的rke,所以docker直接安装最新版的即可,如果不是则需要安装对应版本的docker)
——安装工具
yum install -y yum-utils device-mapper-persistent-data lvm2 bash-completion
——添加docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
——安装docker
yum -y install docker-ce
——把rke用户加入docker组
usermod -aG docker rke
——开机自启并运行docker服务
systemctl enable --now docker
——关闭虚拟内存
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
——系统内核调优
cat >> /etc/sysctl.d/kubernetes.conf<<EOF
net.ipv4.ip_forward=1
kernel.watchdog_thresh=30
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
EOF
执行 sysctl -p
——配置docker 阿里云镜像加速(细节自行百度一下)
执行框中的命令
——docker开机重启
systemctl enable docker.service
——查看docker版本
docker --version
reboot 重启
(三)rke安装 k8s (以下操作是在rke-node1节点上,以rke用户下执行)
注意:如果rke的节点有问题,要先删除,然后再添加,否则etcd会有问题
——在rke-node1上安装rke工具
# 切换rke用户
su rke
# 从github 中下载rke https://github.com/rancher/rke/releases
#上传服务器后执行
sudo chmod +x rke_linux-amd64 && sudo mv rke_linux-amd64 /usr/bin/rke
# 查看当前版本
rke --version
——创建rke-node1 ssh免密登录
cd
ssh-keygen (然后一直回车)
cd .ssh
ssh-copy-id rke@rke-node1
ssh-copy-id rke@rke-node2
ssh-copy-id rke@rke-node3
——安装kubectl工具
# 下载kubectl
curl -O https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
sudo chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
——安装k8s
cd
#编写配置文件
vi cluster.yml
nodes:
- address: 10.9.1.200
user: rke
role:
- controlplane
- etcd
- worker
- address: 10.9.1.201
user: rke
role:
- controlplane
- etcd
- worker
- address: 10.9.1.202
user: rke
role:
- controlplane
- etcd
- worker
network:
plugin: flannel
保存退出后执行
rke up --config ./cluster.yml
等待……
——安装完成后
# 配置用户文件
mkdir ~/.kube
cp /home/rke/kube_config_cluster.yml ~/.kube/config
# kubectl 自动补全
# 将kubectl自动补全添加到配置文件中,可以在以后的shell中自动加载它
echo "source <(kubectl completion bash)" >> ~/.bashrc
# 若要将kubectl自动补全添加到当前shell
source <(kubectl completion bash)
(四)安装 rancher
——安装helm
# 下载对应版本
https://github.com/helm/helm/releases
#解压安装
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
——添加repo源
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
——创建命名空间
kubectl create namespace cattle-system
——安装
# 安装 CustomResourceDefinition 资源
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.0.4/cert-manager.crds.yaml
# **重要:**
# 如果您正在运行 Kubernetes v1.15 或更低版本,
# 则需要在上方的 kubectl apply 命令中添加`--validate=false`标志,
# 否则您将在 cert-manager 的 CustomResourceDefinition 资源中收到与
# x-kubernetes-preserve-unknown-fields 字段有关的验证错误。
# 这是一个良性错误,是由于 kubectl 执行资源验证的方式造成的。
# 为 cert-manager 创建命名空间
kubectl create namespace cert-manager
# 添加 Jetstack Helm 仓库
helm repo add jetstack https://charts.jetstack.io
# 更新本地 Helm chart 仓库缓存
helm repo update
# 安装 cert-manager Helm chart
helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.0.4
helm install rancher rancher-latest/rancher --namespace cattle-system --set hostname=rancher.dev.com --set replicas=1
#启动rancher
kubectl -n cattle-system rollout status deploy/rancher
#配置windows的hosts
10.9.1.200 rancher.dev.com
#在浏览器中输入 https://rancher.dev.com 打开页面