二、安裝並配置Kubernetes Master節點

Federico發表於2017-11-15

1. 安裝配置Master節點上的Kubernetes服務

1.1 安裝Master節點上的Kubernetes服務

yum -y install kubernetes

1.2 修改kube-apiserver服務配置檔案

vim /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBE_ETCD_SERVERS="--etcd-servers=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379"    
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.16.0.0/16  --service-node-port-range=3000-65535"    
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""

啟動引數說明

  • --etcd-servers:指定etcd服務的URL
  • --insecure-bind-address:apiserver繫結主機的非安全IP地址,設定0.0.0.0表示監聽所有IP
  • --insecure-port:apiserver繫結主機的非安全埠號,預設為8080
  • --service-cluster-ip-range:Kubernetes叢集中Service的虛擬IP地址段範圍,以CIDR格式表示,該IP範圍不能與物理機的真實IP段有重合
  • --service-node-port-range:Kubernetes叢集中Service可對映的物理機埠範圍,預設為30000-32767
  • --admission-control:Kubernetes叢集的准入控制設定愛,個控制模組以外掛的形式生效

1.3 修改kubernetes配置檔案

vim /etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER="--master=http://k8s-master:8080"    #定義Master地址及埠資訊

1.4 啟動(並設定為開啟自啟)Master節點上所需服務

systemctl enable kube-apiserver.service
systemctl start kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl start kube-controller-manager.service
systemctl enable kube-scheduler.service
systemctl start kube-scheduler.service
  至此,Kubernetes Master節點部署完成,部署完成後開始部署Kubernetes Node節點。

2. 服務功能簡介

2.1 kube-apiserver(被其他服務所依賴)

  API Server提供了Kubernetes各類資源物件的增刪查改等HTTP Rest介面,是整個系統的資料匯流排和資料中心。
kubernetes API Server的功能:

  • 提供了叢集管理的REST API介面(包括認證授權、資料校驗以及叢集狀態變更);
  • 提供其他模組之間的資料互動和通訊的樞紐(其他模組通過API Server查詢或修改資料,只有API Server才直接操作etcd);
  • 是資源配額控制的入口;
  • 擁有完備的叢集安全機制.

2.2 kube-controller-manager

  保證在任何時間某個 pod 都有特定數量的副本在執行,它的主要的工作就是和 apiserver 通訊,獲取叢集的特定資訊,然後做出響應的反饋動作。

2.3 kube-scheduler

  scheduler 是 kubernetes 的排程器,主要的任務是把定義的 pod 分配到叢集的節點上。
scheduler實現的功能:

  • 公平:如何保證每個節點都能被分配資源
  • 資源高效利用:叢集所有資源最大化被使用
  • 效率:排程的效能要好,能夠儘快地對大批量的 pod 完成排程工作
  • 靈活:允許使用者根據自己的需求控制排程的邏輯

相關文章