Rancher HA 問題彙總

由於前一篇 Rancher HA 高可用安裝步驟 內容過長,後續相關內容在這裏補充。

下面問題標記 [前] 的需要在安裝 Rancher HA 前提前考慮。

1. [前]域名問題

假設以下服務器使用的 hostname 爲 rancher.mybatis.io

在前面寫到了最後安裝 Rancher 時要設置 hostname,在沒有本地 DNS 服務器的情況下,需要修改本地 hosts 來映射域名。

如果只是修改訪問 Rancher 的客戶端電腦的 hosts 配置,雖然能打開 Rancher 了,但是仍然存在很多問題。

1.1 無法使用 Launch kubectl

在如下集羣界面點擊【Launch kubectl】
在這裏插入圖片描述
會彈出如下窗口:
在這裏插入圖片描述
這裏可以看到 Closed Code: 1006,在 Devtools 的 Network 可以看到 404 錯誤:

Request URL: wss://rancher.mybatis.io/v3/clusters/local?shell=true
Request Method: GET
Status Code: 404 Not Found

經過搜索在 https://qiita.com/suzukihi724/items/00b167c6f5f2ddeca718 發現了線索。

1.2 cattle-xxx-agent CrashLoopBackOff

直接在集羣節點通過 kubectl get pods --all-namespaces 獲取 pod 狀態:

NAMESPACE           NAME                                                      READY   STATUS             RESTARTS   AGE
cattle-system       cattle-cluster-agent-5d6866db8-69nvc                      0/1     CrashLoopBackOff   180        15h
cattle-system       cattle-node-agent-4kkm4                                   0/1     CrashLoopBackOff   180        15h
cattle-system       cattle-node-agent-ppwg4                                   0/1     CrashLoopBackOff   180        15h
cattle-system       cattle-node-agent-qxm25                                   0/1     CrashLoopBackOff   180        15h

可以看到上面的 cattle agent Crash,查看上述有問題的 cluster 日誌:

$ kubectl -n cattle-system logs cattle-cluster-agent-5d6866db8-69nvc
INFO: Environment: CATTLE_ADDRESS=10.42.0.6 CATTLE_CA_CHECKSUM=cc83e629bc77fdff27d1f160ab48c40af8e8490e06a291d798039b92a6e5dd2b CATTLE_CLUSTER=true CATTLE_INTERNAL_ADDRESS= CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-5d6866db8-69nvc CATTLE_SERVER=https://rancher.mybatis.io
INFO: Using resolv.conf: nameserver 10.43.0.10 search cattle-system.svc.cluster.local svc.cluster.local cluster.local options ndots:5
ERROR: https://rancher.mybatis.io/ping is not accessible (The requested URL returned error: 404 Not Found)

查看 node 日誌:

$ kubectl -n cattle-system logs cattle-node-agent-4kkm4
INFO: Environment: CATTLE_ADDRESS=10.10.1.238 CATTLE_AGENT_CONNECT=true CATTLE_CA_CHECKSUM=cc83e629bc77fdff27d1f160ab48c40af8e8490e06a291d798039b92a6e5dd2b CATTLE_CLUSTER=false CATTLE_INTERNAL_ADDRESS= CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=10.10.1.238 CATTLE_SERVER=https://rancher.mybatis.io
INFO: Using resolv.conf: nameserver 114.114.114.114 nameserver 8.8.8.8
ERROR: https://rancher.mybatis.io/ping is not accessible (The requested URL returned error: 404 Not Found)

問題很明顯,雖然客戶端配置了 hosts,但是集羣節點並不知道 rancher.mybatis.io 是哪個機器。

1.3 解決方案

  1. 在所有節點配置 /etc/hosts,先讓所有節點都能認識 rancher.mybatis.io
  2. 最關鍵的部分,參考:https://www.jianshu.com/p/5c13ebfd9947,爲Agent Pod添加主機別名(/etc/hosts)
    # 配置 cattle-cluster-agent
    kubectl -n cattle-system patch  deployments cattle-cluster-agent --patch '{
        "spec": {
            "template": {
                "spec": {
                    "hostAliases": [
                        {
                            "hostnames":
                            [
                                "rancher.mybatis.io"
                            ],
                                "ip": "負載均衡IP"
                        }
                    ]
                }
            }
        }
    }'
    # 配置 cattle-node-agent
    kubectl -n cattle-system patch  daemonsets cattle-node-agent --patch '{
     "spec": {
         "template": {
             "spec": {
                 "hostAliases": [
                     {
                         "hostnames":
                            [
                                "rancher.mybatis.io"
                            ],
                                "ip": "負載均衡IP"
                     }
                 ]
             }
         }
     }
    }'
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章