参考文档:https://docs.rancher.cn/docs/rancher2/installation/k8s-install/_index
说明:
1、采用docker容器,没有采用默认的contained
2、没有云负载均衡器,默认会生成内网的ip地址作为Loadblance ,可能会造成跨主机无法通信
3、域名证书问题,部署rancher添加参数
4、最新版本的rancher 2.5允许部署在kubernetes,不在限制于k3s与rke
基本环境
1、主机名
2、防火墙
3、交换分区
4、ipvs
5、内核
安装 Docker
此命令可用于在 Linux上安装 Docker 19.03:
1
| curl https://releases.rancher.com/install-docker/19.03.sh | sh
|
部署mysql
安装包资源地址
1 2 3
| mysql下载地址:https://dev.mysql.com/downloads/mysql/
下载资源名称 mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
|
解压资源
1
| tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
|
安装
1 2 3 4 5 6 7
| # 安装顺序 common --> libs --> clients --> server # 安装命令 rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
|
初始化
1
| mysqld --initialize --user=mysql
|
启动
登录
1 2 3 4 5 6 7 8
| # 查看初始密码 cat /var/log/mysqld.log # 或者 grep 'password' /var/log/mysqld.log -n -B 5 # 登陆 mysql -uroot -p # 修改初始密码 set PASSWORD=PASSWORD('Jusda147258');
|
授权远程链接
1 2 3 4 5 6 7 8 9 10
| ### 授权ip可以远程链接 grant all privileges on *.* to 'root'@'ip' identified by '123456';
### 授权所有ip grant all privileges on *.* to 'root'@'%' identified by 'Jusda147258';
### 以上*.*表示[数据库].[表]
### 使授权立刻生效 flush privileges;
|
安装 K3s Kubernetes
1、安装 Kubernetes 并配置 K3s Server
连接到您准备运行 Rancher Server 的 Linux 节点之一。
在 Linux 节点上,运行以下命令以启动 K3s Server 并将其连接到外部数据库:
1 2 3
| curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh |INSTALL_K3S_MIRROR=cn \ INSTALL_K3S_EXEC="server --docker --flannel-backend=none --disable=servicelb" sh -s - \ --datastore-endpoint="mysql://root:Jusda147258@tcp(10.0.7.147:3306)/k3s"
|
- 在您的另外一台 Linux 节点上执行同样的操作。
2、确认 K3s 是否创建成功
要确认已成功设置 K3s,请在任一 K3s Server 节点上运行以下命令:
1
| sudo k3s kubectl get nodes
|
3、保存并使用 kubeconfig 文件
在每个 Rancher Server 节点上安装 K3s 时,会在节点上/etc/rancher/k3s/k3s.yaml
位置创建一个kubeconfig
文件。
- 安装 Kubernetes 命令行工具kubectl。
- 将文件/etc/rancher/k3s/k3s.yaml复制并保存到本地计算机上的~/.kube/config文件中。
在这个 kubeconfig 文件中,server参数为 localhost。您需要手动更改这个地址为负载均衡器的 DNS,并且指定端口 6443。(Kubernetes API Server 的端口为 6443,Rancher Server 的端口为 80 和 443。)
kubectl(可不安装?k3s安装默认会安装?)
下载
1 2 3
| http://mirror.cnrancher.com/
http://rancher-mirror.cnrancher.com/kubectl/v1.19.2/linux-amd64-v1.19.2-kubectl
|
添加环境变量
1 2
| chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl
|
helm
下载
1 2 3
| https://github.com/helm/helm/releases 或者 http://mirror.cnrancher.com/
https://get.helm.sh/helm-v3.3.4-linux-amd64.tar.gz
|
解压并添加环境变量
1 2
| tar -zxvf helm-v3.3.4-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin/helm
|
添加 Helm Chart 仓库
- latest: 推荐在尝试新功能时使用。
- stable: 推荐生产环境中使用。(推荐)
- alpha: 未来版本的实验性预览。
1 2 3
| helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable
helm repo add rancher-latest http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/latest
|
安装 Rancher
为 Rancher 创建 Namespace
1
| kubectl create namespace cattle-system
|
Rancher 生成的自签名证书
1 2
| 参照官方说明: https://docs.rancher.cn/docs/rancher2/installation/options/self-signed-ssl/_index
|
使用私有 CA 签发证书
1 2
| kubectl -n cattle-system create secret generic tls-ca \ --from-file=cacerts.pem=./cacerts.pem
|
部署rancher
1 2 3 4 5 6
| helm install rancher rancher-latest/rancher \ --namespace cattle-system \ --set hostname=rancher.jusda.int \ --set tls=external \ --set ingress.tls.source=secret \ --set privateCA=true
|