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 完成調度工作
- 靈活:允許用戶根據自己的需求控制調度的邏輯