測試 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
  • 安裝程序
    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
    1. 設定 admin 密碼
    2. 確認 Rancher 之後網址 (讓之後 Node2-N 可以使用)
    3. Add Cluster → From existing nodes → 設定 Cluster 名稱 Exp. MyDevOps → Next → Node Role [V]etcd [V]Control Plane [V]Worker
    4. 複製底下 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 
    5. 至 Node2-N 執行上面 Docker 語法
  • 加入後就可以在 Web 介面看到類似以下的 Node 狀態
  • 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
    • 將內容複製貼入 ~/.kube/config
    • 執行
      kubectl get all

      應該可以出現類似以下畫面

      NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
      service/kubernetes   ClusterIP   10.43.0.1    <none>        443/TCP   19h
  • tech/rancher.txt
  • 上一次變更: 2021/01/23 09:32
  • jonathan