高可用Kubernetes叢集-16. ansible快速部署

來源:互聯網
上載者:User

標籤:資料庫   指定   cpu   tab   3.3   main   uber   doc   table   

說明

本文檔指導採用二進位包的方式快速部署高可用kubernetes叢集。

指令碼託管:k8s-ansible
參考:高可用kubernetes叢集

組件版本
組件 版本 備忘
centos 7.5 linux核心版本不低於3.10,本文檔基於centos發行版本
haproxy 1.8.13 版本可選,本文檔預設採用1.8.13版本
keepalived 2.0.6 版本可選,本文檔預設採用2.0.6版本
docker 18.06.1.ce 版本可選,本文檔預設採用18.06.1.ce版本
cfssl R1.2 版本可選,本文檔預設採用R.12版本
etcd v3.3.9 版本可選,本文檔預設採用v3.3.9版本
flannel v0.10.0 版本可選,本文檔預設採用v0.10.0版本
kubernetes v1.11.2 版本可選,本文檔預設採用v1.11.2版本
kube-dns 1.14.10 本文檔預設採用1.14.10版本
dashboard 1.8.3 本文檔預設採用1.8.3版本
heapster v1.5.4 本文檔預設採用v1.5.4版本
influxdb v1.5.2 本文檔預設採用v1.5.2版本
grafana v5.0.4 本文檔預設採用v5.0.4版本
邏輯拓撲

  1. 叢集伺服器數量建議:3;文檔以172.30.200.51~53樣本,172.30.200.50為vip;
  2. 為減少伺服器數量,採用all-in-one的方式,各角色服務融合部署;
  3. 前端採用haproxy+keepalived做高可用;
  4. k/v資料庫採用etcd叢集;
  5. kubernetes-master角色群組件:kube-apiserver,kube-controller-manager,kube-scheduler;
  6. kubernetes-minion角色群組件:kubelet,kube-proxy。
使用說明環境準備
  • 準備1台ansible-server(主控端):
    • 與ansible-client可通訊
    • 可訪問互連網(如果不可訪問,可提前下載相關package上傳到指定目錄,可參考"~/k8s-ansible/download.sh");
    • 理論上無硬體要求。
  • 根據規劃,準備若干台宿主機作為ansible-client(被控端),本文檔宿主機數量為3:
    • 物理機或虛擬機器;
    • 迷你安裝,設定IP地址,啟動ssh服務即可
    • 宿主機可訪問互連網,否則需要通過其他方式初始化宿主機(如採用虛擬機器時,可通過鏡像的方式統一初始化,初始化步驟參考"~/k8s-ansible/playbooks/roles/initenv/tasks/main.yaml");
    • 配置如下:

      IP CPU(cores) Memory(GB) Remark
      172.30.200.51 4 4 根據實際部署情況酌情調整資源用量
      172.30.200.52 4 4
      172.30.200.53 4 4
操作指南

以下操作若無特別說明,均在選定的ansible-server以root賬戶執行。

1. 安裝ansible-server
yum install ansible -y
2. 設定ansible-server免密登陸ansible-client

ansible採用無代理的方式操作被控端,預設使用ssh協議對被控端進行管理,為避免下髮指令時輸入目標主機密碼,採用簽署憑證的方式可ssh免密登陸目標主機。

  • ssh-keygen:產生秘鑰(含公開金鑰/私密金鑰)時,使用預設設定,斷行符號即可;
  • ssh-copy-id:分發公開金鑰到所有目標主機時需要目標主機密碼,注意for迴圈中的ansible-client格式。

    ssh-keygen -t rsafor i in "172.30.200.51" "172.30.200.52" "172.30.200.53"; do ssh-copy-id [email protected]$i; done
3. 拉取安裝指令碼

重要:在運行帳號的"~/"目錄下拉取安裝指令碼

# 安裝或升級gityum install git -y# 拉取安裝指令碼,注意指令碼的儲存目錄cd ~git clone https://github.com/Netonline2016/k8s-ansible.git
4. 下載安裝包

為避免安裝過程中,連網下載安裝包逾時或等待時間過長,提前下載相應package,並放置於對應路徑下,此過程已整理為shell指令碼,可直接運行。

如對package有版本要求,可在指令碼中修改,請見"~/k8s-ansible/download.sh"指令碼注釋。

sh ~/k8s-ansible/download.sh
5. 根據規劃定義主機變數

涉及檔案,修改請見相應檔案注釋:

  • ~/k8s-ansible/inventory/hosts
  • ~/k8s-ansible/inventory/group_vars/all
6. 部署高可用kubernetes叢集

採用ansible playbook方式運行自動化安裝。

ansible-playbook -i ~/k8s-ansible/inventory/hosts ~/k8s-ansible/playbooks/k8s-ansible.yaml

高可用Kubernetes叢集-16. ansible快速部署

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.