OS 設定

請根據目標主機的 OS 選擇對應設定調整

生成 Inventory 檔 (Optional)

此處我們使用工具來自動生成 Inventory 檔案 (YAML 格式),如已經有既定的 Inventory 檔亦可使用

  # Example: declare -a IPS=(192.168.1.2 192.168.1.3 192.168.1.4)
declare -a IPS=(<target-server-1-IP> <target-server-2-IP> <target-server-3-IP>)

cd /kubespray && cp -rfp inventory/sample/* /inventory/
CONFIG_FILE=/inventory/hosts.yml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
  

調整 Inventory 設定

產生部署節點設定檔

  1. 修改 ansible_user,請填寫前面步驟創建的部署專用帳號名稱
  2. 設定各節點 Hostname (範例為:master1, worker1, worker2)
  3. 決定各目標節點功能,如控制節點 (Control Plane)、運算節點 (Worker Node)、etcd 執行節點

以下為範例 (請根據實際狀況調整,切勿 Copy/Paste)

  cat > /inventory/hosts.yml << EOF
all:
  vars:
    ansible_user: <部署專用帳號>
  hosts:
    master1:
      ansible_host: <Master Node IP>
      ip: <Master Node IP>
      access_ip: <Master Node IP>
    worker1:
      ansible_host: <Worker Node 1 IP>
      ip: <Worker Node 1 IP>
      access_ip: <Worker Node 1 IP>
    worker2:
      ansible_host: <Worker Node 2 IP>
      ip: <Worker Node 2 IP>
      access_ip: <Worker Node 2 IP>
  children:
    kube_control_plane:
      hosts:
        master1:
    kube_node:
      hosts:
        worker1:
        worker2:
    etcd:
      hosts:
        master1:
    k8s_cluster:
      children:
        kube_control_plane:
        kube_node:
    calico_rr:
      hosts: {}
EOF
  

修改腳本執行時套件下載路徑

修改 /inventory/group_vars/all/offline.yml 內套件下載位置

以下為調整指令範例 (請看下面解釋根據實際狀況調整,切勿 Copy/Paste)

設定 Kubernetes CNI

修改 kube_network_plugin 成所需的 CNI

  vim /inventory/group_vars/k8s_cluster/k8s-cluster.yml
  
  • 儘管內部驗證三者可以切換安裝,但考量到生產環境複雜度仍不建議隨意更換

其他參數調整

修正 RHEL 訂閱錯誤

如果出現 RHEL 訂閱錯誤 (subscription error) 時才需要進行以下設定調整

/inventory/group_vars/all/all.yml 增加下列設定

  cat >> /inventory/group_vars/all/all.yml << EOF
rhel_enable_repos: false
EOF
  

調整 hostNetwork: true 模式下 DNS 解析設定

如目標主機並未指定上游 DNS 主機時可能會出現部分異常,請調整 /inventory/group_vars/k8s_cluster/k8s-cluster.ymlresolvconf_mode 改成下列樣式

  # Can be docker_dns, host_resolvconf or none
resolvconf_mode: none
  

如該環境皆有指定 DNS 主機,可以保持官方原始設定 host_resolvconf,詳細參數設定含義請參考官方文件

沒有設定上游 DNS 查詢主機時

原本的設定檔並未設定 upstream_dns_servers,將導致 Local DNS => Global DNS => Local DNS 一直循環。

Was this page helpful?