怎么使用rke装置k8s集群?这么清楚了,你还看不懂吗
4.创建用户-所有节点
创建用户
useradd rkeuser
给用户设置密码
passwd rkeuser
5.将用户添加到docker组
usermod -aG docker rkeuser
6.配置免密登录-master节点
生成公钥-私钥对
ssh-keygen -t rsa -C ‘dev@mldong.com’
将master节点的公钥复制到所有节点(包括自身)-使得新建的rkeuser用户
ssh-copy-id rkeuser@192.168.0.245
ssh-copy-id rkeuser@192.168.0.54
ssh-copy-id rkeuser@192.168.0.22
7.验证rkeuser是否有docker命令权限
登录
ssh rkeuser@192.168.0.245
执行docker命令
docker ps
8.端口要求
开放6443-KubeAPI和2379-etcd
9.SSH server配置
vi /etc/ssh/sshd_config
允许TCP转发
AllowTcpForwarding yes
装置介绍
1.下载rke二进制包-master
https://github.com/rancher/rke/releases
wget https://github.com/rancher/rke/releases/download/v1.2.4-rc9/rke_linux-amd64
2.修改文件名并执行运行权限
mv rke_linux-amd64 /usr/local/bin/rke
chmod +x /usr/local/bin/rke
3.查看版本号
[root@mldong01 download]# rke --version
rke version v1.2.4-rc9
4.使用rke生成配置文件
rke config --name cluster.yml
也可以使用下面的样例文件
nodes:
address: 192.168.0.245
port: “22”
internal_address: 192.168.0.245
role:controlplaneworkeretcd
hostname_override: “mldong01”
user: rkeuser
ssh_key_path: ~/.ssh/id_rsa
ssh_agent_auth: true
labels: {}
taints: []address: 192.168.0.54
port: “22”
internal_address: 192.168.0.54
role:worker
hostname_override: “mldong02”
user: rkeuser
ssh_key_path: ~/.ssh/id_rsa
ssh_agent_auth: true
labels: 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 {}
taints: []address: 192.168.0.22
port: “22”
internal_address: 192.168.0.22
role:worker
hostname_override: “mldong03”
user: rkeuser
ssh_key_path: ~/.ssh/id_rsa
ssh_agent_auth: true
labels: {}
taints: []
kubernetes_version: “v1.19.6-rancher1-1”
cluster_name: “mldong-k8s”
主要参数说明:
nodes[].address:对外ip
nodes[].port:ssh端口号
nodes[].internal_address:内网ip
nodes[].role:节点角色,数组,三个选项[controlplane,worker,etcd]
nodes[].hostname_override:虚拟域名
nodes[].user:ssh用户名
nodes[].ssh_key_path:ssh私钥
nodes[].ssh_agent_auth:启用ssh认证
kubernetes_version:k8s版本,可以使用命令查看支持版本rke config --list-version --all
cluster_name:集群名称
5.开端执行装置
rke up --config cluster.yml
装置过程需要下载镜像,时间比较久,请耐心等待
6.装置胜利后会生成相关文件
cluster.yml:RKE 集群的配置文件。kube_config_cluster.yml:该集群的包含了获取该集群所有权限的认证凭据。cluster.rkestate:Kubernetes 集群状态文件,包含了获取该集群所有权限的认证凭据,使用 RKE v0.2.0 时才会创建这个文件。
7.验证装置
复制kubeconfig文件
scp kube_config_cluster.yml ~/.kube/config
获取集群节点信息
[root@mldong01 download]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
mldong01 Ready controlplane,etcd,worker 3d16h v1.19.6
mldong02 Ready worker 3d16h v1.19.6
mldong03 Ready worker 3d16h v1.19.6
完全卸载rke
#!/bin/bash
#杀死所有正在运行的容器
docker stop $(docker ps -a -q)
#删除所有容器
docker rm -f $(docker ps -qa)
#删除所有容器卷
docker volume rm $(docker volume ls -q)
#卸载mount目录
for mount in $(mount | grep tmpfs | grep ‘/var/lib/kubelet’ | awk ‘{ print $3 }’) /var/lib/kubelet /var/lib/rancher; do umount $mount; done
#删除残留途径
rm -rf /etc/ceph
/etc/cni
/etc/kubernetes
/opt/cni
/opt/rke
/run/secrets/kubernetes.io
/run/calico
/run/flannel
/var/lib/calico
/var/lib/etcd
/var/lib/cni
/var/lib/kubelet
/var/lib/rancher/rke/log
/var/log/containers
/var/log/pods \
#清理网络接口
network_interface=ls /sys/class/net
for net_inter in $network_interface;
do
if ! echo $net_inter | grep -qiE ‘lo|docker0|eth*|ens*’;then
ip link delete $net_inter
fi
done
#清理残留进程
port_list=‘80 443 6443 2376 2379 2380 8472 9099 10250 10254’
for port in $port_list
do
pid=netstat -atlnup|grep $port |awk '{print $7}'|awk -F '/' '{print $1}'|grep -v -|sort -rnk2|uniq
if [[ -n $pid ]];then
kill -9 $pid
fi
done
st=‘80 443 6443 2376 2379 2380 8472 9099 10250 10254’
for port in $port_list
do
pid=netstat -atlnup|grep $port |awk '{print $7}'|awk -F '/' '{print $1}'|grep -v -|sort -rnk2|uniq
if [[ -n $pid ]];then
kill -9 $pid
fi
done |
|
|
|
|