99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

K3s 使用外部數(shù)據(jù)庫實現(xiàn)高可用安裝

2022-08-24 11:02 更新

使用外部數(shù)據(jù)庫實現(xiàn)高可用安裝

注意: 我們在 v1.0.0 版本中引入了在 Kubernetes 集群上安裝 Rancher 的官方支持。

本節(jié)介紹了如何使用外部數(shù)據(jù)庫安裝一個高可用的 K3s 集群。

單節(jié)點 k3s server 集群可以滿足各種用例,但是對于需要 Kubernetes control-plane 穩(wěn)定運行的重要環(huán)境,您可以在 HA 配置中運行 K3s。一個 K3s HA 集群由以下幾個部分組成:

  • 兩個或多個server 節(jié)點,將為 Kubernetes API 提供服務(wù)并運行其他 control-plane 服務(wù)。
  • 零個或多個agent 節(jié)點,用于運行您的應(yīng)用和服務(wù)。
  • 外部數(shù)據(jù)存儲 (與單個 k3s server 設(shè)置中使用的嵌入式 SQLite 數(shù)據(jù)存儲相反)
  • 固定的注冊地址,位于 server 節(jié)點的前面,以允許 agent 節(jié)點向集群注冊

關(guān)于這些組件如何協(xié)同工作的更多細節(jié),請參考架構(gòu)部分。

Agent 通過固定的注冊地址進行注冊,但注冊后直接與其中一個 server 節(jié)點建立連接。這是一個由?k3s agent?進程發(fā)起的 websocket 連接,并由作為 agent 進程一部分運行的客戶端負載均衡器維護。

安裝概要

1. 創(chuàng)建一個外部數(shù)據(jù)存儲

你首先需要為集群創(chuàng)建一個外部數(shù)據(jù)存儲。請參閱集群數(shù)據(jù)存儲選項文檔了解更多細節(jié)。

2. 啟動 server 節(jié)點

K3s 需要兩個或更多的 server 節(jié)點來實現(xiàn)這種 HA 配置。請參閱安裝要求指南了解最低主機要求。

當(dāng)在這些節(jié)點上運行?k3s server?命令時,必須設(shè)置?datastore-endpoint?參數(shù),以便 K3s 知道如何連接到外部數(shù)據(jù)存儲。?token ?參數(shù)也可以用來在添加節(jié)點時設(shè)置一個固定的 token。當(dāng)為空時,將自動生成 token。

例如,可以使用如下命令安裝 K3s server,并使用 MySQL 數(shù)據(jù)庫作為外部數(shù)據(jù)存儲和設(shè)置 token

curl -sfL https://get.k3s.io | sh -s - server \
  --token=SECRET \
  --datastore-endpoint="mysql://username:password@tcp(hostname:3306)/database-name"

國內(nèi)用戶,可以使用以下方法加速安裝:

curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \
  --token=SECRET \
  --datastore-endpoint="mysql://username:password@tcp(hostname:3306)/database-name"

根據(jù)數(shù)據(jù)庫類型的不同,數(shù)據(jù)存儲端點的格式也不同。詳情請參考數(shù)據(jù)存儲端點格式章節(jié)。

啟動 server 節(jié)點時,若要設(shè)置 TLS 證書,請參考數(shù)據(jù)存儲配置指南。

注意: 單臺 server 安裝時可用的安裝選項也適用于高可用安裝。更多詳情,請參見安裝和配置選項文檔。

默認情況下,server 節(jié)點將是可調(diào)度的,因此你的工作負載可以在它們上啟動。如果你希望有一個專用的 control-plane,在這個平面上不會運行用戶工作負載,你可以使用 taints。?node-taint? 參數(shù)將允許你用污點配置節(jié)點,例如?--node-taint CriticalAddonsOnly=true:NoExecute?。

在所有 server 節(jié)點上啟動?k3s server?進程后,用?k3s kubectl get nodes?確保集群正常運行。你應(yīng)該會看到你的 server 節(jié)點處?Ready?狀態(tài)。

3. 配置固定的注冊地址

Agent 節(jié)點需要一個 URL 來注冊。這可以是任何 server 節(jié)點的 IP 或主機名,但在許多情況下,這些節(jié)點可能會隨著時間的推移而改變。例如,如果您在支持縮放組的云中運行集群,您可能會隨著時間的推移上下縮放 server 節(jié)點組,導(dǎo)致節(jié)點被創(chuàng)建和銷毀,從而具有與初始 server 節(jié)點不同的 IP。因此,你應(yīng)該在 server 節(jié)點前面有一個穩(wěn)定的端點,不會隨時間推移而改變。可以使用許多方法來設(shè)置此端點,例如:

  • 一個 4 層(TCP)負載均衡器
  • 輪詢 DNS
  • 虛擬或彈性 IP 地址

這個端點也可以用來訪問 Kubernetes API。因此,你可以修改你的?kubeconfig?文件來指向它,而不是特定的節(jié)點。為了避免在這樣的配置中出現(xiàn)證書錯誤,你應(yīng)該使用?--tls-san YOUR_IP_OR_HOSTNAME_HERE?選項安裝 server 節(jié)點。這個選項在 TLS 證書中增加了一個額外的主機名或 IP 作為備用名稱,如果你想通過 IP 和主機名訪問,可以多次指定。

4. 可選:加入其他的 server 節(jié)點

步驟 2 中的相同示例命令可用于加入其他 server 節(jié)點,其中需要使用第一個節(jié)點的 token。

如果第一個 server 節(jié)點是在沒有 ?--token? CLI 標(biāo)志或 ?K3S_TOKEN ?變量的情況下啟動的,那么可以從任何已經(jīng)加入集群的 server 節(jié)點中檢索到 token:

cat /var/lib/rancher/k3s/server/token

然后可以使用 token添加其他 server 節(jié)點:

curl -sfL https://get.k3s.io | sh -s - server \
  --token=SECRET \
  --datastore-endpoint="mysql://username:password@tcp(hostname:3306)/database-name"

有幾個配置標(biāo)志在所有 server 節(jié)點中必須是相同的:

  • 與網(wǎng)絡(luò)有關(guān)的標(biāo)志:?--cluster-dns?, ?--cluster-domain?, ?--cluster-cidr?, ?--service-cidr ?
  • 控制某些組件的部署的標(biāo)志:?--disable-helm-controller?, ?--disable-kube-proxy?, ?--disable-network-policy?和任何傳遞給?--disable?的組件
  • 與功能相關(guān)的標(biāo)志:?--secrets-encryption?

注意:應(yīng)該備份 token 的值,因為從備份恢復(fù)和添加節(jié)點時都需要它。以前,K3s 在使用外部 SQL 數(shù)據(jù)存儲時不強制使用 token。

5. 可選: 加入 Agent 節(jié)點

因為 K3s server 節(jié)點默認是可調(diào)度的,所以 HA K3s server 集群的最小節(jié)點數(shù)是兩個 server 節(jié)點和零個 agent 節(jié)點。要添加指定運行您的應(yīng)用和服務(wù)的節(jié)點,請將 agent 節(jié)點加入到您的集群中。

在 HA 集群中加入 agent 節(jié)點與在單個 server 集群中加入 agent 節(jié)點是一樣的。你只需要指定 agent 應(yīng)該注冊到的 URL 和它應(yīng)該使用的 token 即可。

K3S_TOKEN=SECRET k3s agent --server https://fixed-registration-address:6443


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號