RKE搭建k8s集群&Helm3部署Rancher高可用
此次是:RKE的方式快速部署K8S集群(https://199604.com/2400)的进一步文章
运行环境
机器需要满足以下几个条件:
- 一台或多台机器,操作系统CentOS7.x-86_64(个人选择CentOS7.9)
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
- 禁止swap分区,可参考之前二进制部署k8s的前提环境
服务器整体规划
名称 | IP | 组件 |
---|---|---|
srs103 | 10.80.210.103 | controlplane、worker、etcd、rancher、rke、kubectl |
srs104 | 10.80.210.104 | controlplane、worker、etcd |
srs105 | 10.80.210.105 | controlplane、worker、etcd |
软件环境
软件 | 版本 |
---|---|
docker | 20.10.18 |
操作系统 | centos 7.9 |
初始化环境准备
所有机器执行
安装Docker
步骤忽略:参考之前自己的部署笔记
Docker:https://199604.com/2011
Docker-compose(不需要可忽略):https://199604.com/2039
添加创建普通用户
为了安全起见,能不使用 root 账号操作就不使用,因此要添加专用的账号进行 docker 操作。
需要在每个节点重复该操作添加账号
创建 rancher 用户,添加到 docker 组
RKE所在主机上创建密钥
RKE所在主机srs103
创建ssh-key,执行
重启每台机器
最好重启一下机器。以免带来不必要的麻烦(如果无法重启,可忽略)
RKE工具下载
srs101服务器执行
具体最新版本可看github
初始化配置文件(编写配置文件)
srs101服务器执行
编写rancher-cluster.yml
(执行服务器ip:X.X.140.17 ):
请参考RKE 版本说明,获取您当前使用的 RKE 支持的 Kubernetes 版本号。
也可以输入:
rke config --list-version --all
,快速获取支持的版本号
部署集群
执行命令
srs101服务器执行
rke up
如果报错则进一步排查。可以往下拉错误集那有没有和我遇到的错误一致
执行成功后当前目录下将会多出以下文件
rancher-cluster.yml
:RKE 集群的配置文件。kube_config_cluster.yml
:该集群的Kubeconfig 文件包含了获取该集群所有权限的认证凭据。rancher-cluster.rkestate
:Kubernetes 集群状态文件,包含了获取该集群所有权限的认证凭据,使用 RKE v0.2.0 时才会创建这个文件。
使用kubectl命令查看集群
srs101服务器执行
下载kubectl命令工具
kubectl版本需要与k8s版本一致
配置连接文件
查看集群状态
Helm3安装Rancher高可用
安装Helm3
下载安装helm3
srs101服务器执行
Helm3安装Rancher集群
参考官网步骤:https://docs.rancher.cn/docs/rancher2/installation/install-rancher-on-k8s/_index
srs101服务器执行
使用helm repo add命令添加Rancher chart仓库地址
为 Rancher 创建 Namespace
我们需要定义一个 Kubernetes Namespace,在 Namespace 中安装由 Chart 创建的资源。这个命名空间的名称为cattle-system
:
kubectl create namespace cattle-system
选择您的 SSL 选项
参考官网,有以下三种:
- Rancher 生成的自签名证书
- Let’s Encrypt
- 自签证书
因中国技术团队建议使用自签证书
,所以也才有此方式。其他两种可参考官网步骤
生成自签证书
自签证书脚本-官方生成脚本:https://docs.rancher.cn/docs/rancher2.5/installation/resources/advanced/self-signed-ssl/_index/#41-%E4%B8%80%E9%94%AE%E7%94%9F%E6%88%90-ssl-%E8%87%AA%E7%AD%BE%E5%90%8D%E8%AF%81%E4%B9%A6%E8%84%9A%E6%9C%AC
添加 自签证书
使用 kubectl
创建 tls
类型的密文。
拷贝 CA 证书到名为 cacerts.pem
的文件,使用 kubectl
命令在 cattle-system
命名空间中创建名为 tls-ca
的密文。
helm安装rancher
检查安装进度:
到此,我们已经安装完了!
由于域名是自定义的,我们需要在自己的windows上配置hosts:
遇到问题
1.遇到告警Warning: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
最初使用k8s版本是1.20+,遇到ingress无法负载均衡的问题
于是测试demo发现是新版本的语法错误导致的
修改文件请参考官方文档:
Kubernetes version 1.20+ introduces the networking.k8s.io API version as stable. If you have ingresses that predate K3S 1.20, you have until Kubernetes 1.22 to update them. Until then, if you use old-style ingress definitions, you will receive a warning like Warning: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress when you apply the ingress to a cluster.
部署过程参考:
https://docs.rancher.cn/docs/rancher2.5/installation/install-rancher-on-k8s/_index
https://www.cnblogs.com/zoujiaojiao/p/15011469.html
太几把强了,大佬我想跟你学k8s
我也想跟大佬学习k8s,大佬开课专门讲Rancher