Autok3s 是一個自動化管理 Kubernetes 集群的工具,針對於多種雲平台,例如 Alibaba Cloud、AWS、Azure、DigitalOcean和Google Cloud Platform等。因為使用簡單、配置簡單,許多開發人員都喜歡使用它來進行 Kubernetes 群集的管理、部署和維護。本文將以autok3s為中心,從git、網路、離線、外部埠等多個方面,對autok3s進行詳細的闡述。
一、autok3s git
Autok3s git是autok3s管理k3s集群的開源代碼存儲庫,讓用戶能夠輕鬆創建和管理k3s集群。如果您有一個開發或測試環境,需要經常創建和刪除k3s集群,那麼使用autok3s git可以節省您的大量時間。
使用如下代碼創建集群:
autok3s create --access-key ${AK} \ --secret-key ${SK} \ --provider ${PROVIDER} \ --name ${K3S_CLUSTER_NAME} \ --region ${REGION} \ --ssh-key ~/.ssh/id_rsa \ --datastore ${DS_OPTIONS} \ --master ${MASTER_OPTIONS} \ --worker ${WORKER_OPTIONS} \ ${EXTRA_OPTIONS}
以上代碼是在使用阿里雲作為雲平台的例子,使用上述代碼創建阿里雲的k3s集群,輸入以上命令時需要修改大括弧內用於創建集群的變數,例如${AK}和${SK}代表你的阿里雲賬戶的訪問密鑰,${REGION}代表創建集群的區域,因為基於k3s,所以使用的是${MASTER_OPTIONS}和${WORKER_OPTIONS}配置。
一旦您的代碼庫與autok3s相關,您可以使用以下代碼快速獲取最新的代碼並開始使用 autok3s:
git clone https://github.com/rancher-sandbox/autok3s.git cd autok3s make build make install
二、autok3s網路
Autok3s 網路方面更側重於對於Kubernetes集群網路的管理,包括CNI模式、網路插件等。 如果您想在k3s集群中使用另一個網路插件,可以為 autok3s 指定插件。 在創建集群的同時,將插件選項設置為 calico 就可以使用它。
使用如下代碼創建基於 calico 網路插件的集群:
autok3s create --access-key ${AK} \ --secret-key ${SK} \ --provider ${PROVIDER} \ --name ${K3S_CLUSTER_NAME} \ --region ${REGION} \ --ssh-key ~/.ssh/id_rsa \ --datastore ${DS_OPTIONS} \ --master ${MASTER_OPTIONS} \ --worker ${WORKER_OPTIONS} \ --network-plugin calico \ ${EXTRA_OPTIONS}
另外,在使用 autok3s 管理 k3s 集群時,還需要根據業務場景選擇不同的 CNI 模式。 CNI 模式是 k3s 集群中網路插件的工作模式,支持 flannel 和 canal 兩種模式,用戶可根據業務場景自行選擇使用。
使用如下語句創建flannel模式的集群:
autok3s create --access-key ${AK} \ --secret-key ${SK} \ --provider ${PROVIDER} \ --name ${K3S_CLUSTER_NAME} \ --region ${REGION} \ --ssh-key ~/.ssh/id_rsa \ --datastore ${DS_OPTIONS} \ --master ${MASTER_OPTIONS} \ --worker ${WORKER_OPTIONS} \ --cni flannel \ ${EXTRA_OPTIONS}
三、autok3s離線部署方案
Autok3s支持在不需要Internet連接的情況下創建k3s群集,這些場景可能包括:在安全環境中一些軍隊或政府場景,或者在內網的生產場景中。通常情況下,用戶需要下載k3s二進位文件、容器鏡像和管理平台的二進位文件,並將其打包在一起進行部署。使用autok3s可以簡化這個流程。
使用如下語句創建一個離線模式的k3s集群:
autok3s create --provider ${PROVIDER} \ --name ${K3S_CLUSTER_NAME} \ --ssh-key ~/.ssh/id_rsa \ --datastore ${DS_OPTIONS} \ --master ${MASTER_OPTIONS} \ --worker ${WORKER_OPTIONS} \ --offline \ --k3s-server-url /mnt/sfs/k3s \ --k3s-server --k3s-server-init \ ${EXTRA_OPTIONS}
以上命令會創建一個離線模式的k3s集群,該命令需要一個額外的選項,即「 -k3s-server-url」參數,該參數指定了離線模式。當使用「 –offline 」創建集群時,自動安裝並部署k3s二進位文件和鏡像文件。安裝程序會下載這些文件並將其放置在指定的目錄中,部署時可以從本地路徑中載入相關內容。
四、autok3s創建外部埠
autok3s還允許您使用外部埠向Internet開放服務,進而為應用程序提供公共訪問。 此功能包括自動獲取外部 IP 地址,配置 DNS 名稱解析,並在架構中創建相應的負載平衡器。
使用如下語句,讓您的應用提供 80 埠的公開服務:
autok3s create --provider ${PROVIDER} \ --name ${K3S_CLUSTER_NAME} \ --ssh-key ~/.ssh/id_rsa \ --datastore ${DS_OPTIONS} \ --master ${MASTER_OPTIONS} \ --worker ${WORKER_OPTIONS} \ --port 80 \ ${EXTRA_OPTIONS}
其中,–port 參數定義了集群將曝露出去的埠號,該埠將映射到群集中的負載平衡器,並公開給外部用戶。自動分配的負載均衡器名稱將在創建集群後顯示,可以在運行 kubectl get svc 時查看所有負載平衡器名字。
結語
綜上所述,本文通過從git、網路、離線、外部埠等方面,對 Autok3s 進行了詳細的闡述。Autok3s 作為一個在Kubernetes社區中備受好評的自動集群部署工具,可以方便有序地進行k3s 集群的安裝部署、配置管理和系統自動化。在實際應用中, Autok3s 已經被廣泛應用於各種場景的k3s 集群,希望本文能夠幫助您更好地使用它吧。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200238.html