︿
Top

CentOS 7.9上安裝Rancher和自訂Kubernetes Cluster

Rancher 是一個多 Kubernetes 集群管理工具,可以創建節點並安装自定義 Kubernetes,或者導入在任何地方運行的現有 Kubernetes 集群,該公司 Rancher Labs 由華人梁勝作為聯合創始人,所以相關的中文技術文件非常豐富、易於學習,Rancher Labs 最終於2020121日被 SUSE 收購

 

本例使用的作業系統為 CentOS7.9 

docker版本為19.03.9,rancher版本為2.5.1,RKE版本為1.19.15 

本例旨在快速建立測試環境,參照的是下圖左的架構,rancher server僅有單一節點,下圖右則是適用於生產環境的架構、將rancher server放置於Rancher Server Kubernetes Cluster中以避免單點失效,其中本次測試環境僅會於rancher server底下創建(管理)一個User Kubernetes Cluster做為示範,做法是透過rancher創建自定義集群節點,預設被創建出來的是系出同門的RKE Kubernetes。


Rancher Kubernetes Engine(RKE)是一款輕量級Kubernetes安裝工具,支持在裸機和虛擬機上安裝。RKE解決了Kubernettes安裝的複雜步驟



安裝rancher管理中心

1. 安裝docker

[vagrant@rancher ~]$ sudo yum install -y nano
[vagrant@rancher ~]$ sudo yum install -y yum-utils
[vagrant@rancher ~]$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[vagrant@rancher ~]$ sudo yum install -y docker-ce-19.03.9 docker-ce-cli-19.03.9 --nogpgcheck
[vagrant@rancher ~]$ sudo systemctl start docker
[vagrant@rancher ~]$ sudo systemctl enable docker

2. 將所需要使用docker的操作用戶加入docker群組,本例用戶名稱為vagrant

[vagrant@rancher ~]$ sudo usermod -aG docker vagrant

3. 快速安裝rancher

[vagrant@rancher ~]$ docker run -d --privileged --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:v2.5.1

4. 或是透過docker-compose安裝rancher

[vagrant@rancher ~]$ sudo yum install -y epel-release
[vagrant@rancher ~]$ sudo yum install -y docker-compose
[vagrant@rancher ~]$ pwd
/home/vagrant
[vagrant@rancher ~]$ mkdir rancher
[vagrant@rancher ~]$ nano ./rancher/docker-compose.yml
version: '3'
services:

  rancher:
    image: rancher/rancher:v2.5.1
    container_name: rancher
    hostname: rancher
    environment:
      - TZ=Aisa/Taipei
    privileged: true
    ports:
      - 80:80/tcp
      - 443:443/tcp
    restart: unless-stopped
[vagrant@rancher ~]$ cd rancher
[vagrant@rancher ~]$ docker-compose up -d

5. 確認rancher已經運作中

[vagrant@rancher ~]$ docker ps
CONTAINER ID   IMAGE                    COMMAND           CREATED         STATUS         PORTS
                   NAMES
427a5903974e   rancher/rancher:v2.5.1   "entrypoint.sh"   6 minutes ago   Up 6 minutes   0.0.0.0:80->80/tcp, 0.0.
0.0:443->443/tcp   confident_shamir

6. 前往WEBUI介面、設定admin帳戶的密碼,並在最下面I agree to the Terms and Conditions  for using Rancher需要打勾後按下Continue


7. 設定rancher server的網址,不論是設定為ip或是domain name、都需要讓集群中的每個節點可以連接到


8. 登入後可以看到目前rancher所管理的叢集只有rancher本身所存在的k3s


Rancher Labs推出的Kubernetes開源專案K3s,是一個輕量級大小只有40MB、且易於安裝的Kubernetes發布版本,專為資源有限和低互動的系統而設計,適用於邊緣應用、物聯網、持續整合以及ARM等使用情境。




透過rancher創建RKE Kubernetes集群


等待被創建的集群都是基於數個實體機器或虛擬機器所組成,其中這些機器最低的硬件要求是1cores/1GB,並且需要事先安裝好docker服務、作業系統部分須符合RKE的安裝要求

生產環境無論在哪種情況下,都不應該把 worker角色,添加到具有 etcd 或 controlplane 角色的節點中


以下1~8步驟套用於預備創建RKE Cluster中的每一台實體機器或虛擬機器中,本例為rke-master與rke-node01兩台機器:

1. 安裝相關套件

sudo yum install -y nano wget git epel-release
sudo yum install -y jq
sudo yum install -y nfs-utils
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum clean all && yum repolist
sudo yum install -y docker-ce-19.03.9 docker-ce-cli-19.03.9 --nogpgcheck
sudo systemctl enable docker

2. 將非root的操作用戶加入docker群組,本例用戶名稱為vagrant

sudo usermod -aG docker vagrant

3. 因應kubelet需求,禁用swap

sudo sed -i '/swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

4. 內核相關設定

sudo modprobe br_netfilter
sudo echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf
sudo echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sudo sysctl -p

5. 允許TCP轉發

sudo sed -i 's/#AllowTcpForwarding/AllowTcpForwarding/g' /etc/ssh/sshd_config
sudo systemctl reload sshd

6. 關閉selinux與firewalld以避免cluster中各node間發生通訊問題

sudo systemctl disable firewalld
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sudo setenforce 0
sudo reboot

7. 設定主機名稱並更新時區時間

sudo timedatectl set-timezone Asia/Taipei
sudo yum install -y chrony
sudo systemctl start chronyd && sudo systemctl enable chronyd
sudo hostnamectl set-hostname rke-master

8. 重啟機器讓selinux生效

sudo reboot

9. 回到rancher WEBGUI中添加欲被管理的K8S Cluster


10. 選擇自定義集群來創建RKE Cluster


11. 集群名稱填上後其它按照default值即可,然後下一步


12. Master管理節點機器的部分保持單純、排除Worker,僅選取Etcd與Control角色


13. 高級選項中依照機器配給的IP不同填上不同的公網或內網地址


14. 將生成的快速安裝指令貼到Master節點機器上執行


15. Worker節點機器部分依照步驟12~14、主機選項角色僅選取Worker,並將生成的快速安裝指令貼到Worker節點機器上執行,約等待10分鐘後,自定義RKE Cluster生成!


tomy

來自台灣的系統工程師,一直熱衷於 Open source 相關技術的學習、建置、應用與分享。

  • Image
  • Image
  • Image
  • Image
  • Image

0 Comments:

張貼留言