DevOps雲原生應用:在centos上部署kubernetes集羣(1)

本系列文檔介紹使用二進制部署最新 kubernetes v1.14.2 集羣的所有步驟,而不是使用 kubeadm 等自動化方式來部署集羣。本文檔主要適合於那些有一定 kubernetes 基礎,想通過一步步部署的方式來學習和了解系統配置、運行原理的人。

環境信息


  • OS 系統: Centos7.6 ( core )

  • kubernetes版本:v1.14.2

  • ETCD數據庫:v3.3.13

  • Network插件:Flanneld 0.11.0

  • Docker 版本: 18.09.6-ce

  • K8s插件:CoreDns,Heapster,Influxdb,Grafana,Dashboard,Efk,Metrics-server

  • Docker倉庫:Harbor

架構概覽:


組件訪問策略

kube-apiserver:

  • 基於Keepalived+ Haproxy 四層透明代理實現高可用;

  • 開啓非安全端口 8080 和關閉匿名訪問,基於token訪問;

  • 在安全端口 6443 接收 https 請求;

  • 嚴格的認證和授權策略 (x509、token、RBAC);

  • 開啓 bootstrap token 認證,支持 kubelet TLS bootstrapping;

  • 使用 https 訪問 kubelet、etcd,加密通信;

kube-controller-manager:

  • 3 節點高可用;

  • 開啓安全端口,在安全端口 10252 接收 https 請求;

  • 使用 kubeconfig 訪問 apiserver 的安全端口;

  • 自動 approve kubelet 證書籤名請求 (CSR),證書過期後自動輪轉;

  • 各 controller 使用自己的 ServiceAccount 訪問 apiserver;

kube-scheduler:

  • 3 節點高可用;
  • 使用 kubeconfig 訪問 apiserver 的安全端口;

kubelet:

  • 使用 kubeadm 動態創建 bootstrap token,而不是在 apiserver 中靜態配置;
  • 使用 TLS bootstrap 機制自動生成 client 和 server 證書,過期後自動輪轉;
  • 在 KubeletConfiguration 類型的 JSON 文件配置主要參數;
  • 關閉只讀端口,在安全端口 10250 接收 https 請求,對請求進行認證和授權,拒絕匿名訪問和非授權訪問;
  • 使用 kubeconfig 訪問 apiserver 的安全端口;

kube-proxy:

  • 使用 kubeconfig 訪問 apiserver 的安全端口;
  • 在 KubeProxyConfiguration 類型的 JSON 文件配置主要參數;
  • 使用 ipvs 代理模式;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章