參考:
https://rancher.com/docs/rancher/v2.x/en/installation/ha-server-install/
https://www.cnblogs.com/rancher-maomao/p/8445111.html
部署要點:
域名解析准備:
域名解析至三個IP作輪詢解析,類似下方:
rancher.qq.com 192.168.1.1
racher.qq.com 192.168.1.2
racher.qq.com 192.168.1.3
系統版本:
建議使用Ubuntu 16.04版本,CentOS7沒有配置成功,需要修改的地方太多了;
Docker版本:
RKE在Github上的readme中已有說明,Kubernetes1.10.1需要Docker 1.13.1;
主機名:
如果是克隆的系統一定要修改主機名,hostname主機名必須不同!
主機文件:
/etc/hosts要配置正確,一定要有127.0.0.1 localhost 這一項。Hosts文件中包含所有主機節點的IP和名稱列表。使用vi進行編輯,不能使用中文全角的空格;
SELinux:
必須關閉!Ubuntu 16.04默認未安裝,無需設置。CentOS7下可修改配置文件/etc/sysconfig/selinux,設置SELINUX=disabled ,重啟后永久關閉。
IPV4轉發:
必須開啟!Ubuntu 16.04下默認已啟用,無需設置。
防火牆:
Ubuntu默認未啟用UFW防火牆,無需設置。也可手工關閉:sudo ufw disable
禁用SWAP:
一定要禁用swap,否則kubelet組件無法運行,永久禁用swap可以直接修改/etc/fstab文件,注釋掉swap項。swapoff -a 只是臨時禁用,下次關機重啟又恢復原樣;
啟用Cgroup:
修改配置文件/etc/default/grub,啟用cgroup內存限額功能,配置兩個參數:
GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
注意:要執行sudo update-grub 更新grub,然后重啟系統后生效。
SSH免密登錄:
ssh-keygen 全部回車
ssh-copy-id 用戶名@IP
用戶名為非root用戶,執行命令時不要加sudo,本機也要。
RKE部署用戶:
1、RKE部署用戶是cluster.yml配置文件中的用戶,也就是上述能ssh免密登錄到其他機器的用戶;
2、如果使用普通用戶進行RKE安裝,要將普通用戶(如user01)加入到docker組,命令:sudo usermod -aG docker user01 注意:重啟系統以后才能生效,只重啟Docker服務是不行的!重啟后,user01用戶也可以直接使用docker run命令。
4、在Ubuntu上使用apt安裝完docker后,會自動創建docker用戶組,無需手工創建docker組,只需要將部署RKE的用戶(如user01)加入到docker組即可,查看是否存在docker組、以及user01用戶是否在docker組中,可以直接查看/etc/group文件;
5、修改配置文件/etc/ssh/sshd_config,將PermitRootLogin prohibit-password 改為PermitRootLogin yes ,允許root遠程ssh登錄;
取消注釋#AuthorizedKeysFile %h/.ssh/authorized_keys ,允許記錄授權秘鑰文件;
RKE下載
https://github.com/rancher/rke/releases
rke_linux-amd64這個版本
yml文件下載
我下載的是公用證書,自簽名類似,關鍵是下面幾步
https://raw.githubusercontent.com/rancher/rancher/e9d29b3f3b9673421961c68adf0516807d1317eb/rke-templates/3-node-certificate-recognizedca.yml
下載之后,改名成自己喜歡的名稱
注意需要配置的地方:
節點配置
nodes: - address: 1.1.1.1 user: root role: [controlplane,etcd,worker] ssh_key_path: ~/.ssh/id_rsa - address: 2.2.2.2 user: root role: [controlplane,etcd,worker] ssh_key_path: ~/.ssh/id_rsa - address: 3.3.3.3 user: root role: [controlplane,etcd,worker] ssh_key_path: ~/.ssh/id_rsa
address 為自己的IP
用戶名為可以免密登錄的用戶名。
以下為關鍵的證書配置
一般證書名為兩個:
fullchain.pem與privkey.pem
自簽名是三個,類似,具體位置見官方文檔
cat FILENAME | base64 -w0
這個文件名是剛才證書的文件名,使用證書的文件生成base64 字符串,輸入yml文檔中
apiVersion: v1 kind: Secret metadata: name: cattle-keys-ingress namespace: cattle-system type: Opaque data: tls.crt:
tls.key:
注意這里的格式,在輸入之前先備份,base64字條串為新起來行,頂行或crt:后面有空格
FQDN配置
需要修改兩處:
到些處,所有准備工作已經完成
./rke_linux-amd64 up --config rancher-cluster.yml 正式配置
不報錯就成功
全部成功后,使用配置的域名訪問,其它與單機安裝一樣。配置的域名就是FQDN。