搭建集群前提是 服务器数量为大于1的奇数 本案例用三台机器,采用rke搭建k8s集群,然后利用helm在此集群中部署七层负载的rancher server。
首先安装前需要提前准备必要的工具软件,
所需工具软件如下(只限于 Rancher 集群的三台节点使用)
✓ kubectl - Kubernetes 命令行工具。
✓ rke - Rancher Kubernetes Engine 用于构建 Kubernetes 集群。
✓ helm - Kubernetes 的包管理。
可以通过:https://www.cnrancher.com/docs/rancher/v2.x/cn/install-prepar
e/download/ 下载相关文件
把事先下载完成的 rke 、helm 、kubectl 二进制文件 copy 到/usr/bin 目录下
chmod 777 rke_linux-amd64 kubectl_linux-amd64 helm
mv rke_linux-amd64 /usr/bin/rke
mv kubectl_linux-amd64 /usr/bin/kubectl
mv helm /usr/bin/helm
Rancher 集群的三台主机分别修改本机的 hosts 文件
cat <> /etc/hosts
ip1 hostname1
ip2 hostname2
ip3 hostname3
EOF
配置 Rancher 集群三台服务器之间的 ssh 免密登录
配置 Rancher 集群三台服务器之间的 ssh 免密登录
Rancher 集群的三台主机分别修改本机的 hosts 文件
cat <> /etc/hosts
ip1 hostname1
ip2 hostname2
ip3 hostname3
EOF
配置 Rancher 集群三台服务器之间的 ssh 免密登录
ssh-keygen -t rsa -C "备注信息"
生成公私钥
将免密公钥推送集群内三台主机的 rancher账户(或其他可以使用docker的账号,centos不能使用root账号)
ssh-copy-id -i ~/.ssh/id_rsa.pub rancher@ip1
以此类推
三台机器都推送,包括自身
创建 rancher-cluster.yml 文件,用于 rke 推送集群配置使用,配置如下:
nodes:
- address: 10.128.119.47
user: was
role: [controlplane,worker,etcd]
- address: 10.128.119.48
user: was
role: [controlplane,worker,etcd]
- address: 10.128.119.49
user: was
role: [controlplane,worker,etcd]
services:
etcd:
snapshot: true
creation: 6h
给提前下载好的 rke 工具配置可执行权限
chmod +x rke
./rke up --config rancher-cluster.yaml
完成后(如果镜像拉取快,15分钟左右),正常显示:Finished building Kubernetes cluster successfully。
使用 Kubectl 验证集群健康状态
mkdir -p ~/.kube
cp kube_config_rancher-cluster.yml ~/.kube/config
kubectl get nodes
kubectl get cs
至此k8s集群安装完成
安装 helm 工具包
tar -xvf helm-v2.13.1-linux-amd64.tar.gz
chmod +x linux-amd64/helm
cp linux-amd64/helm /usr/bin/
创建 helm ServiceAccount
kubectl -n kube-system create serviceaccount tiller
创建 ClusterRoleBinding 以授予 tiller 帐户对集群的访问权限
kubectl create clusterrolebinding tiller \
--clusterrole cluster-admin --serviceaccount=kube-system:tiller
查看 helm client 端的版本号
helm version
helm init --skip-refresh --service-account tiller \
--tiller-image \
registry.cn-shanghai.aliyuncs.com/rancher/tiller:v2.13.1
如果有自己官方证书,就用官方证书,如果没有证书,制作证书参考“证书申请与制作“章节
创建 namespaces
kubectl create namespace cattle-system
创建 tls 密文
kubectl -n cattle-system \
create secret tls tls-rancher-ingress --cert=./tls.crt --key=./tls.key
创建 ca 密文
kubectl -n cattle-system \
create secret generic tls-ca --from-file=cacerts.pem
添加 helm chart 仓库地址
helm repo add rancher-stable https://releases.rancher.com/server-charts/latest
helm repo list
执行 Rancher Server 创建操作
helm install rancher-latest/rancher \
--name rancher \
--namespace cattle-system \
--set hostname=自己的域名 \
--set ingress.tls.source=secret \
--set privateCA=true
注:自定义域名和证书申请的域名要保持一致
查看是否部署成功
helm list
查看 pod
kubectl get deployment -n cattle-system
安装rancher server出错,可以用helm delete --purge rancher 删除后 重新执行
在rancher UI界面,在system项目分别点击升级,进行编辑cattle-cluster-agent Pod和cattle-node-agent
点击显示高级选项;然后再网络里面 添加hosts别名,填写rancher server 服务器ip和自定义域名,完成后保存即可,待pod恢复后,状态会变成Active