Rancher安裝

Rancher 是 RKE 的 Web Console。

參考資料

事前準備

安裝 helm

Rancher 是用 helm 安裝的,所以要先安裝 helm (文件)

到這邊挑選版本下載:https://github.com/helm/helm/releases

wget https://get.helm.sh/helm-v3.13.0-linux-amd64.tar.gz tar xf helm-v3.13.0-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm

安裝

增加 helm repo

helm repo add jetstack https://charts.jetstack.io helm repo add rancher-stable https://releases.rancher.com/server-charts/stable

jetstack 是 cert-manager 的 repo

安裝 cert-manager

helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.11.0 --set installCRDs=true

安裝 rancher

helm install rancher rancher-stable/rancher \ --namespace cattle-system \ --set hostname=rancher.experteam.com.tw \ --set replicas=1 \ --set useBundledSystemChart=true \ --set bootstrapPassword="Redhat12345678"

這邊要加 useBundledSystemChart=true ,若不加,佈署時會失敗。

若安裝失敗,可以用 uninstall

helm uninstall rancher -n cattle-system

配置 Load Balancer

由於會自動安裝 nginx-ingress ,所以可以使用以下幾種方式

  1. 在 F5 配置,將 master, worker 都配置進去即可。
  2. 新增一台 haproxy ,將 master, worker 配置到 backend
  3. 新增一台 nginx ,將 master, worker 配置進去

或者是偷懶的在 DNS 新增一筆 A record,填入 master 的 node IP 即可。

接下來應該就可以登入了。

RKE安裝

因公司某產品說在 RKE 平台上有問題,所以就找了資料,裝一套起來試試看,想不到意外的簡單。

參考資料

準備 VM 與配置 VM 環境

建立兩台 VM,可以使用 RHEL8

接下來動作,兩台都要作

移除 podman

sudo yum remove podman runc docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

安裝 docker-ce

sudo ls /etc/yum.repos.d wget https://download.docker.com/linux/centos/docker-ce.repo -O - | sudo tee /etc/yum.repos.d/docker.repo sudo yum install -y docker-ce-cli-20.10.24-3.el8 docker-ce-20.10.24-3.el8 sudo systemctl enable --now docker

關閉 swap

sudo swapoff -a

編輯 /etc/fstab ,註解掉 swap 該行

關閉 selinux

sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

關閉防火牆

sudo systemctl stop firewalld sudo systemctl disable firewalld

新增 sysctl 設定

新增 /etc/sysctl.d/99-k8s.conf

net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1

增加使用者 apadmin

sudo useradd apadmin sudo passwd apadmin sudo usermod -aG docker apadmin

安裝

在 bastion 上作業

下載 rke

因這邊有需求要裝 kubernetes 1.24,所以要下載對應的 rke 版本 1.43-rc3

這是在 bastion 主機上作

wget https://github.com/rancher/rke/releases/download/v1.4.3-rc3/rke_linux-amd64 -O /tmp/rke sudo mv /tmp/rke /usr/local/bin/rke sudo chmod +x /usr/local/bin/rke

配置 ssh 免密碼登入

ssh-keygen ssh-copy-id apadmin@<master> ssh-copy-id apadmin@<worker>

rke設定檔

先列出此版 rke 可安裝的 kubernetes 版本

rke config --list-version -all

輸出結果是

v1.24.8-rancher1-1 v1.25.5-rancher1-1 v1.23.14-rancher1-1

新增 cluster.yml ,裡面的 kubernetes_version 指定的 kubernetes 版本

cluster_name: ithome-rancher kubernetes_version: "v1.24.8-rancher1-1" nodes: - address: 10.11.23.81 user: apadmin role: [controlplane,worker,etcd] - address: 10.11.23.82 user: apadmin role: [worker,etcd] services: etcd: backup_config: enabled: true interval_hours: 6 retention: 60 network: plugin: flannel

開始安裝

執行以下指令就可以安裝

rke up

安裝後配置

安裝完成後,目錄裡會有 kube_config_cluster.yml 的檔案

這是給 kubectl 使用的檔案,先下載 kubectl

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" sudo mv kubectl /usr/local/bin sudo chmod +x /usr/local/bin/kubectl

把 kube_config_cluster.yml 複製為 ~/.kube/config

mkdir -p ~/.kube cp kube_config_cluster.yml ~/.kube/config

接下來就可以用 kubectl 指令查看

kubectl get nodes kubectl get pods -A