做的好的家装网站,网站备案制度,两当网站建设,网站标题如何修改k8s架构图 RKE简介
RKE全称Rancher Kubernetes Engine#xff0c;是一个快速的#xff0c;多功能的 Kubernetes 安装工具。通过RKE#xff0c;我们可以快速的安装一个高可用K8S集群。RKE 支持多种操作系统#xff0c;包括 MacOS、Linux 和 Windows。
K8S原生安装需要的先…k8s架构图 RKE简介
RKE全称Rancher Kubernetes Engine是一个快速的多功能的 Kubernetes 安装工具。通过RKE我们可以快速的安装一个高可用K8S集群。RKE 支持多种操作系统包括 MacOS、Linux 和 Windows。
K8S原生安装需要的先决条件较多比如说需要预安装kubeadm,kubectl配置网络等一系列繁琐的工作。而使用RKE安装k8s基本上只要docker版本是当前RKE版本支持的即可。
Rancher简介
Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程开发者可以随处运行 KubernetesRun Kubernetes Everywhere满足 IT 需求规范赋能 DevOps 团队。 版本选择
软件版本源码版本发布时间RKE1.3.12GitHub - rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distribution that runs entirely within containers.2022-06-161.3.12 releasedk8s1.23.7GitHub - kubernetes/kubernetes: Production-Grade Container Scheduling and Management2022-05-26,1.23.7 releasedhelmv3.9.2Releases · helm/helm · GitHubrancher2.6.6GitHub - rancher/rancher: Complete container management platform
参考
Rancher文档 | K8S文档 | Rancher | Rancher文档
环境初始化
hostname设置
sudo hostnamectl set-hostname ubuntu24
查看
hostnamectl
修改后需要将/etc/hosts文件更新
ubuntu24 127.0.0.1
修改/etc/hosts文件所有节点
192.168.43.23 ubuntu23
192.168.43.24 ubuntu24
192.168.43.26 ubuntu26
192.168.43.27 ubuntu27
192.168.43.28 ubuntu28
192.168.43.29 ubuntu29
192.168.43.30 ubuntu30
192.168.43.31 ubuntu31
192.168.43.24 k8s-test.com
禁用swap
临时禁用swap
sudo swapoff -a查看swap是否关闭
free -h
永久禁用
sudo sed -ri s/.*swap.*/#/ /etc/fstab手动把有swap相关配置的行注释也是可以ubuntu18的话其实就一行
#UUID07389530-1861-4a4b-b4fc-ad03d69f59f4 noneswapsw0 0
ssh免密互登录
确保所有主机ssh免密可互通保证rke节点可以免密码登录其它节点即可。
ssh-keygen
ssh-copy-id kangming192.168.43.28
内核参数调整
确保以下参数值为1
net.bridge.bridge-nf-call-iptables1
可以通过以下指令查看
#查看所有内核参数
sudo sysctl -a#过滤
sudo sysctl -a|grep net.bridge.bridge-nf-call-iptables
如果不是1执行下面的设置指令
sysctl -w net.bridge.bridge-nf-call-iptables1
关闭防火墙
sudo ufw disable资源规划
IP配置角色/作用192.168.43.241核/2Gnginx负载192.168.43.261核/2Gkubernetes node1192.168.43.271核/2Gkubernetes node2192.168.43.281核/2Gkubernetes node3192.168.43.291核/2Grancher-agent192.168.43.301核/2Grancher-agent192.168.43.311核/2Grancher-agent
安装RKE1.3.12高可用k8s集群
RKE在26 nginx负载均衡节点进行安装。
下载最新稳定版本RKERancher Kubernetes Engine下载地址Release Release v1.3.12 · rancher/rke · GitHub
下载
https://github.com/rancher/rke/releases/download/v1.3.12/rke_linux-amd64
注意每个版本的RKE对k8s版本的支持都是有限的当前版本V1.3.12支持的k8s版本列表如下
Kubernetes versionv1.23.7-rancher1-1 (Default)v1.22.10-rancher1-1v1.21.13-rancher1-1v1.20.15-rancher1-4v1.19.16-rancher1-6v1.18.20-rancher1-3
rancher也使用当前最新版本Release Release v2.6.6 · rancher/rancher · GitHub
安装
sudo mv rke_linux-amd64 /usr/local/bin/rke chmod x /usr/local/bin/rke
查看 rke版本
rke --version
cluster.yml
nodes:- address: 192.168.43.26internal_address: 192.168.43.26user: kangmingrole: [controlplane,worker,etcd]- address: 192.168.43.27internal_address: 192.168.43.27user: kangmingrole: [controlplane,worker,etcd]- address: 192.168.43.28internal_address: 192.168.43.28user: kangmingrole: [controlplane,worker,etcd]
创建一个名为 cluster.yml 的 Kubernetes 集群配置文件。在后续步骤中当使用 RKE 命令设置集群时它将使用此文件在节点上安装 Kubernetes。
RKE适配了高可用集群您可以在 cluster.yml 文件中配置多个 controlplane 节点。RKE 会把 master 节点的组件部署在所有被列为 controlplane 的节点上同时把 kubelets 的默认连接地址配置为 127.0.0.1:6443 。这个地址是nginx-proxy请求所有 master 节点的地址。创建高可用集群需要指定两个或更多的节点作为 controlplane 。 RKE使用集群配置文件 cluster.yml 规划集群中的节点例如集群中应该包含哪些节点如何部署 Kubernetes。您可以通过该文件修改很多集群配置选项。
如果您的节点具有公共和内部地址建议设置 internal_address: 这样 Kubernetes 会将其用于集群内通信。RKE需要通过 SSH 连接到每个节点并且它将在默认位置 ~/.ssh/id_rsa 中寻找私钥。如果您的默认私钥与节点的私钥不在同一个位置则还需要为该节点配置 ssh_key_path 选项 根据官网列举了几个RKE节点选项
选项必填描述address是公用 DNS 或 IP 地址user是可以运行 docker 命令的用户role是分配给节点的 Kubernetes 角色列表internal_address是内部集群流量的专用 DNS 或 IP 地址ssh_key_path否用于对节点进行身份验证的 SSH 私钥的路径默认为~/.ssh/id_rsacluster_name否集群名称默认集群名称localignore_docker_version否在运行 RKE 前是否执行 Docker 版本检测可选值为true和false默认值为false
当前rke版本需要的docker镜像如下可保存离线镜像备用。所有需要的镜像可以查看启动rke目录下的cluster.rkestate文件。
方便起见将当前rke版本所有镜像保存到一个离线镜像中然后导入到需要的节点中。
docker save -o rke1.3.2-rancherk8s1.23.7.tar rancher/mirrored-coreos-etcd:v3.5.3 \
rancher/rke-tools:v0.1.80 \
rancher/mirrored-k8s-dns-kube-dns:1.21.1 \
rancher/mirrored-k8s-dns-dnsmasq-nanny:1.21.1 \
rancher/mirrored-k8s-dns-sidecar:1.21.1 \
rancher/mirrored-cluster-proportional-autoscaler:1.8.5 \
rancher/mirrored-coredns-coredns:1.9.0 \
rancher/mirrored-k8s-dns-node-cache:1.21.1 \
rancher/hyperkube:v1.23.7-rancher1 \
rancher/mirrored-coreos-flannel:v0.15.1 \
rancher/flannel-cni:v0.3.0-rancher6 \
rancher/mirrored-calico-node:v3.22.0 \
rancher/mirrored-calico-cni:v3.22.0 \
rancher/mirrored-calico-kube-controllers:v3.22.0 \
rancher/mirrored-calico-ctl:v3.22.0 \
rancher/mirrored-calico-pod2daemon-flexvol:v3.22.0 \
rancher/mirrored-flannelcni-flannel:v0.17.0 \
rancher/mirrored-calico-pod2daemon-flexvol:v3.22.0 \
weaveworks/weave-kube:2.8.1 \
weaveworks/weave-npc:2.8.1 \
rancher/mirrored-pause:3.6 \
rancher/nginx-ingress-controller:nginx-1.2.1-rancher1 \
rancher/mirrored-nginx-ingress-controller-defaultbackend:1.5-rancher1 \
rancher/mirrored-ingress-nginx-kube-webhook-certgen:v1.1.1 \
rancher/mirrored-metrics-server:v0.6.1 \
noiro/cnideploy:5.1.1.0.1ae238a \
noiro/aci-containers-host:5.1.1.0.1ae238a \
noiro/opflex:5.1.1.0.1ae238a \
noiro/openvswitch:5.1.1.0.1ae238a \
noiro/aci-containers-controller:5.1.1.0.1ae238a \
noiro/gbp-server:5.1.1.0.1ae238a
相关节点导入镜像后执行
执行RKE
rke up
这条命令默认cluster.yml已经保存在了您运行命令所处的路径下.如果配置文件起了其它名字则像如下这样启动
rke up --config ./rancher-cluster.yml
上述命令可能出现如下错误重新执行一下rke up即可。
FATA[0198] Failed to get job complete status for job rke-coredns-addon-deploy-job in namespace kube-system
集群清理需要清除集群时执行
rke remove#删除所有容器上面的rke remove不会清理所有的节点容器如有需要可执行下面的指令把所有容器清理会删除所有容器删除请谨慎
docker rm -f $(docker ps -aq)
kubectl安装测试K8S
把kube_config_cluster.yml文件备份然后放到所有工作节点中然后配置环境变量。
配置环境变量
vim .bashrc
export KUBECONFIG/home/kangming/rancher/kube_config_cluster.yml
source .bashrc
设置kube_config_cluster.yml文件的权限为当前用户读写
sudo chmod 600 kube_config_cluster.yml
在几个工作节点中安装kubectl
通过本地浏览器下载下面的文件然后放到所有工作节点中
https://packages.cloud.google.com/apt/doc/apt-key.gpg
上传到服务器后执行
sudo apt-key add /home/kangming/apt-key.gpg
添加源然后更新apt下载kebectl
sudo vi /etc/apt/sources.list
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
sudo apt-get update
下载 与查看
sudo apt-get install -y kubectl
kubectl get nodes
打印如下所有节点都ready即可
kangmingubuntu26:~$ kubectl get nodes
NAMESTATUS ROLESAGE VERSION
192.168.43.26 Readycontrolplane,etcd,worker 71m v1.23.7
192.168.43.27 Readycontrolplane,etcd,worker 71m v1.23.7
192.168.43.28 Readycontrolplane,etcd,worker 71m v1.23.7
检查所有需要启动的pod都处于running或 completed状态。
kubectl get pods --all-namespacesNAMESPACE NAMEREADY STATUSRESTARTS AGE
ingress-nginx nginx-ingress-controller-tnsn41/1 Running 030s
ingress-nginx nginx-ingress-controller-tw2ht1/1 Running 030s
ingress-nginx nginx-ingress-controller-v874b1/1 Running 030s
kube-system canal-jp4hz 3/3 Running 030s
kube-system canal-z2hg8 3/3 Running 030s
kube-system canal-z6kpw 3/3 Running 030s
kube-system kube-dns-7588d5b5f5-sf4vh 3/3 Running 030s
kube-system kube-dns-autoscaler-5db9bbb766-jz2k61/1 Running 030s
kube-system metrics-server-97bc649d5-4rl2q1/1 Running 030s
kube-system rke-ingress-controller-deploy-job-bhzgm 0/1 Completed 030s
kube-system rke-kubedns-addon-deploy-job-gl7t40/1 Completed 030s
kube-system rke-metrics-addon-deploy-job-7ljkc0/1 Completed 030s
kube-system rke-network-plugin-deploy-job-6pbgj 0/1 Completed 030s