1. 程式人生 > >01-集群環境及組件介紹

01-集群環境及組件介紹

自動部署 clust 多重 eap 插件化 fluentd sea 功能 dash

介紹

Kubernetes是容器集群管理系統,是一個開源的平臺,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。

通過Kubernetes你可以:

  • 快速部署應用
  • 快速擴展應用
  • 無縫對接新的應用功能
  • 節省資源,優化硬件資源的使用
  • 我們的目標是促進完善組件和工具的生態系統,以減輕應用程序在公有雲或私有雲中運行的負擔。

Kubernetes 特點

  • 可移植: 支持公有雲,私有雲,混合雲,多重雲(multi-cloud)
  • 可擴展: 模塊化, 插件化, 可掛載, 可組合
  • 自動化: 自動部署,自動重啟,自動復制,自動伸縮/擴展

Kubernetes是Google 2014年創建管理的,是Google 10多年大規模容器管理技術Borg的開源版本。

集群環境及組件介紹

集群組件和版本

  • Kubernetes 1.6.2
  • Docker 1.12.6
  • Etcd 3.1.5
  • Flanneld 0.7.1 vxlan 網絡
  • TLS 認證通信 (所有組件,如 etcd、kubernetes master 和 node)
  • RBAC 授權
  • kubelet TLS BootStrapping
  • kubedns、dashboard、heapster (influxdb、grafana)、EFK (elasticsearch、fluentd、kibana) 插件
  • 私有 docker registry,使用 ceph rgw 後端存儲,TLS + HTTP Basic 認證

集群機器

  • 192.168.1.121(etcd/kube-apiserver/kube-controller/kube-scheduler/flanneld)
  • 192.168.1.122(etcd/kubelet/kebe-proxy/flanneld)
  • 192.168.1.123(etcd/kubelet/kebe-proxy/flanneld)

  • etcd集群、kubernetes master 集群使用192.168.1.121
  • kubernetes node 使用192.168.1.122/192.168.1.123

集群環境變量

後續的部署步驟將使用下面定義的變量值,根據自己的機器、網絡情況設定:

# TLS Bootstrapping 使用的 Token,可以使用命令 
head -c 16 /dev/urandom | od -An -t x | tr -d ‘ ‘ 生成 BOOTSTRAP_TOKEN="41f7e4ba8b7be874fcff18bf5cf41a7c" # 建議用 未用的網段 來定義服務網段和 Pod 網段 # 服務網段 (Service CIDR),部署前路由不可達,部署後集群內使用 IP:Port 可達 SERVICE_CIDR="10.254.0.0/16" # POD 網段 (Cluster CIDR),部署前路由不可達,**部署後**路由可達 (flanneld 保證) CLUSTER_CIDR="172.30.0.0/16" # 服務端口範圍 (NodePort Range) NODE_PORT_RANGE="8400-9000" # etcd 集群服務地址列表 ETCD_ENDPOINTS="https://192.168.1.121:2379,https://192.168.1.122:2379,https://192.168.1.121:2379" # flanneld 網絡配置前綴 FLANNEL_ETCD_PREFIX="/kubernetes/network" # kubernetes 服務 IP (預分配,一般是 SERVICE_CIDR 中第一個IP) CLUSTER_KUBERNETES_SVC_IP="10.254.0.1" # 集群 DNS 服務 IP (從 SERVICE_CIDR 中預分配) CLUSTER_DNS_SVC_IP="10.254.0.2" # 集群 DNS 域名 CLUSTER_DNS_DOMAIN="cluster.local."

01-集群環境及組件介紹