====== 測試 Rancher 佈署 K8S ====== * 主機共四台 : Ubuntu 18.04.5 * 統一使用者為 localadmin , 並更到最新版 sudo useradd -s /bin/bash -d /home/localadmin/ -m -G sudo localadmin sudo passwd localadmin sudo -i apt-get update apt upgrade reboot * 安裝 Docker sudo apt install docker.io * 更改 Node Hostname sudo vi /etc/cloud/cloud.cfg : preserve_hostname: true : Exp. 第一台: pve-dev1 hostnamectl set-hostname pve-dev1 * 更改 Node IP, Exp. 第一台:192.168.11.204 sudo vi /etc/netplan/00-installer-config.yaml network: ethernets: ens18: addresses: [192.168.11.204/24] gateway4: 192.168.11.1 nameservers: addresses: [8.8.8.8,8.8.4.4] dhcp4: no version: 2 * 重新開機讓 hostname 與 IP 生效 sudo reboot * 如果要 IP 立即生效可以使用以下語法 sudo netplan apply * 如果要測試更改 IP 是否正常, 120 秒自動改回, 可使用以下語法 sudo netplan try ===== 安裝 Rancher Cluster 環境 ===== * 安裝程序 WORK_DIR=/home/localadmin mkdir $WORK_DIR/rancher chmod 755 $WORK_DIR/rancher sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -v $WORK_DIR/rancher:/var/lib/rancher rancher/rancher * 使用 Web 介面產生針對 Node2-N 的 docker 命令來進行 K8S 環境建立 Exp. http://192.168.11.204 - 設定 admin 密碼 - 確認 Rancher 之後網址 (讓之後 Node2-N 可以使用) - Add Cluster -> From existing nodes -> 設定 Cluster 名稱 Exp. MyDevOps -> Next -> Node Role [V]etcd [V]Control Plane [V]Worker - 複製底下 Docker 語法 Exp. sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.4.7 --server https://192.168.11.204 --token krbkc4knrj.......................................frzt --ca-checksum 009caed0ea.......................................9bb3c2cca13e1f --etcd --controlplane --worker - 至 Node2-N 執行上面 Docker 語法 * 加入後就可以在 Web 介面看到類似以下的 Node 狀態 {{:tech:註解_2020-09-03_202559.png|}} ===== 開始使用 Rancher 環境 ===== * Node1 安裝 kubectl sudo snap install kubectl --classic kubectl version --client Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-09-30T19:31:27Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"linux/amd64"} * 建立 ~/.kube/config 設定檔 * 透過 Rancher 管理網頁 -> 選擇要操作的 Cluster Exp.iii-devops -> 點 Kubeconfig File {{:tech:螢幕擷取畫面_2020-10-01_140245.png}} * 將內容複製貼入 ~/.kube/config * 執行 kubectl get all應該可以出現類似以下畫面 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.43.0.1 443/TCP 19h ===== 參考網址 ===== * https://rancher.com/docs/rancher/v2.x/en/cluster-admin/cluster-access/kubectl/ * https://rancher.com/blog/2020/deploy-php-application/ * https://hub.docker.com/_/php {{tag>rancher k8s iiidevops}}