docker swarm init
說明 | 初始化一個 swarm |
---|---|
用法 | docker swarm init [選項] |
Swarm 此命令適用於 Swarm 編排器。
說明
初始化一個 swarm。此命令鎖定的 Docker Engine 將成為新建立的單節點 swarm 中的管理節點。
選項
選項 | 預設值 | 說明 |
---|---|---|
--advertise-addr | 宣告位址(格式:<ip|interface>[:port] ) | |
--autolock | 啟用管理節點自動鎖定(需要解鎖金鑰才能啟動已停止的管理節點) | |
--availability | active | 節點的可用性(active 、pause 、drain ) |
--cert-expiry | 2160h0m0s | 節點憑證的有效期限(ns|us|ms|s|m|h) |
--data-path-addr | API 1.31+ 用於資料路徑流量的位址或介面(格式:<ip|interface> ) | |
--data-path-port | API 1.40+ 用於資料路徑流量的埠號 (1024 - 49151)。如果未設定值或設定為 0,則使用預設埠 (4789)。 | |
--default-addr-pool | API 1.39+ 預設位址池,採用 CIDR 格式 | |
--default-addr-pool-mask-length | 24 | API 1.39+ 預設位址池子網路遮罩長度 |
--dispatcher-heartbeat | 5s | Dispatcher 心跳週期 (ns|us|ms|s|m|h) |
--external-ca | 一個或多個憑證簽署端點的規格 | |
--force-new-cluster | 強制從目前狀態建立新的叢集 | |
--listen-addr | 0.0.0.0:2377 | 接聽位址(格式:<ip|interface>[:port] ) |
--max-snapshots | API 1.25+ 要保留的額外 Raft 快照數量 | |
--snapshot-interval | 10000 | API 1.25+ Raft 快照之間的日誌項目數量 |
--task-history-limit | 5 | 任務歷史記錄保留限制 |
範例
$ docker swarm init --advertise-addr 192.168.99.121
Swarm initialized: current node (bvz81updecsj6wjz393c09vti) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx 172.17.0.2:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
docker swarm init
命令會產生兩個隨機權杖:一個工作節點權杖和一個管理節點權杖。當您將新節點加入 swarm 時,節點會根據您傳遞給 swarm join 的權杖以工作節點或管理節點身分加入。
建立 Swarm 之後,您可以使用 swarm join-token 顯示或輪替權杖。
保護管理節點金鑰和資料 (--autolock)
--autolock
旗標可啟用使用加密金鑰自動鎖定管理節點。所有管理節點儲存的私鑰和資料都受到輸出中列印的加密金鑰保護,沒有它就無法存取。請務必安全地儲存此金鑰,以便在管理節點重新啟動後重新啟用它。將金鑰傳遞給 docker swarm unlock
命令以重新啟用管理節點。您可以透過執行 docker swarm update --autolock=false
來停用自動鎖定。停用後,啟動管理節點不再需要加密金鑰,它將在沒有使用者介入的情況下自行啟動。
設定節點健康檢查頻率 (--dispatcher-heartbeat)
--dispatcher-heartbeat
旗標設定通知節點回報其健康狀態的頻率。
使用外部憑證授權單位 (--external-ca)
此旗標將設定 Swarm 使用外部 CA 簽發節點憑證。值的形式為 protocol=X,url=Y
。protocol
的值指定應使用哪種協議將簽署請求發送到外部 CA。目前,唯一支援的值是 cfssl
。URL 指定應提交簽署請求的端點。
強制將節點重新啟動為單一模式管理節點 (--force-new-cluster)
此旗標強制先前屬於已遺失仲裁的現有節點,在不遺失其資料的情況下,重新啟動為單節點管理節點。
指定用於輸入控制平面流量的介面 (--listen-addr)
節點在此位址上監聽輸入 Swarm 管理員流量。預設值是在 0.0.0.0:2377
上監聽。也可以指定網路介面來監聽該介面的位址;例如 --listen-addr eth0:2377
。
指定埠是可選的。如果值是單純的 IP 位址或介面名稱,則使用預設埠 2377。
指定用於輸出控制平面流量的介面 (--advertise-addr)
--advertise-addr
旗標指定將通告給 Swarm 其他成員的位址,以用於 API 存取和覆蓋網路。如果未指定,Docker 將檢查系統是否具有單一 IP 位址,並將該 IP 位址與監聽埠一起使用(請參閱 --listen-addr
)。如果系統有多個 IP 位址,則必須指定 --advertise-addr
,以便為管理節點間通訊和覆蓋網路選擇正確的位址。
也可以指定網路介面來通告該介面的位址;例如 --advertise-addr eth0:2377
。
指定埠是可選的。如果值是單純的 IP 位址或介面名稱,則使用預設埠 2377。
指定用於資料流量的介面 (--data-path-addr)
--data-path-addr
旗標指定全域範圍網路驅動程式將向其他節點發佈的位址,以便連線到在此節點上執行的容器。使用此參數,您可以將容器的資料流量與叢集的管理流量分開。
如果未指定,則使用通告位址的 IP 位址或介面。
設定 --data-path-addr
並不限制 VXLAN 通訊端繫結到哪些介面或來源 IP 位址。與 --advertise-addr
類似,此旗標的目的是告知 Swarm 的其他成員要使用哪個位址進行控制平面流量。要限制對節點的 VXLAN 埠的存取,請使用防火牆規則。
設定資料流量的埠號 (--data-path-port)
--data-path-port
旗標允許您設定用於資料路徑流量的 UDP 埠號。提供的埠號必須在 1024 - 49151 範圍內。如果未設定此旗標,或將其設定為 0,則使用預設埠號 4789。資料路徑埠只能在初始化 Swarm 時設定,並且適用於加入 Swarm 的所有節點。以下範例初始化新的 Swarm,並將資料路徑埠設定為 UDP 埠 7777;
$ docker swarm init --data-path-port=7777
初始化 Swarm 後,使用 docker info
命令驗證埠是否已設定。
$ docker info
<...>
ClusterID: 9vs5ygs0gguyyec4iqf2314c0
Managers: 1
Nodes: 1
Data Path Port: 7777
<...>
指定預設子網路池 (--default-addr-pool)
--default-addr-pool
旗標指定全域範圍網路的預設子網路池。例如,要指定兩個位址池:
$ docker swarm init \
--default-addr-pool 30.30.0.0/16 \
--default-addr-pool 40.40.0.0/16
使用 --default-addr-pool-mask-length
旗標指定子網路池的預設子網路池遮罩長度。
設定要保留的快照數量上限 (--max-snapshots)
此旗標設定除了目前的 Raft 快照之外,還要保留的舊 Raft 快照數量。預設情況下,不保留舊快照。此選項可用於除錯,或儲存 Swarm 狀態的舊快照以進行災難復原。
設定 Raft 快照記錄間隔 (--snapshot-interval)
--snapshot-interval
旗標指定在 Raft 快照之間允許的記錄項目數量。將此設定為較高的數字將減少觸發快照的頻率。快照會壓縮 Raft 記錄,並允許更有效率地將狀態傳輸到新的管理節點。但是,頻繁拍攝快照會產生效能成本。
設定管理節點的可用性 (--availability)
--availability
旗標指定節點加入主節點時的可用性。可能的可用性值為 active
、pause
或 drain
。
此旗標在某些情況下很有用。例如,叢集可能希望擁有專用的管理節點,而不充當工作節點。您可以透過將 --availability=drain
傳遞給 docker swarm init
來執行此操作。