====== 測試 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}}