1. 程式人生 > >Centos7.3Kubernetes叢集安裝部署

Centos7.3Kubernetes叢集安裝部署

•Kubernetes叢集元件:
  - etcd 一個高可用的K/V鍵值對儲存和服務發現系統
  - flannel 實現誇主機的容器網路的通訊
  - kube-apiserver 提供kubernetes叢集的API呼叫
  - kube-controller-manager 確保叢集服務
  - kube-scheduler 排程容器,分配到Node
  - kubelet 在Node節點上按照配置檔案中定義的容器規格啟動容器
  - kube-proxy 提供網路代理服務
叢集架構圖

一、環境準備
目前各相關元件版本如下:
kubernetes-1.5.2
docker-1.12.6
flannel-0.7.0
etcd-3.1.3

kubernetes環境角色如下:
192.168.199.190(4核,4g,50g硬碟) kubernetes master和etcd server
192.168.199.191(4核,4g,50g硬碟) kubernetes node1
192.168.199.192(4核,4g,50g硬碟) kubernetes node2
192.168.199.193(4核,4g,50g硬碟) kubernetes node2
192.168.199.194(4核,4g,50g硬碟) kubernetes node2

二、安裝及配置

各元件用途
kube master主要以下元件:
1、kube-apiserver
k8s的管理介面
2、kube-scheduer

k8s排程器,容器的啟動、遷移、擴容縮減時候,選擇哪個node,就看它了。
3、kube-controller-manager
k8s對node的控制行為,比如怎麼去呼叫node啟動一個容器。

kube node主要以下元件:
1、kubelet
負責node的管理,基本所有操作都靠它。
2、kube-proxy
每個node裡的container都在一個私有網路中,kube-proxy的作用就是做一個反向代理,讓訪問者訪問這個node的時候,可以轉發到內部對應的container。
	
etcd 1、作為kubernetes的資料庫,儲存了k8s自身的資訊、以及各種業務容器資訊等。 2、儲存flannel網路配置資訊,供各節點協調。 安裝master節點: yum install etcd -y    安裝 etcd 節點 yum install kubernetes-master -y 安裝 k8s master 節點 編輯配置檔案/etc/etcd/etcd.conf ETCD_NAME=default ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.199.190:2379"
啟動服務 systemctl enable etcd systemctl start etcd 編輯配置檔案 /etc/kubernetes/apiserver KUBE_API_ADDRESS="--address=0.0.0.0" KUBE_ETCD_SERVERS="--etcd_servers=http://192.168.199.190:2379" KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" KUBE_ADMISSION_CONTROL="--admission_control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" KUBE_API_ARGS=""
編輯配置檔案/etc/kubernetes/controller-manager KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s" 編輯配置檔案/etc/kubernetes/config  KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow_privileged=false" KUBE_MASTER="--master=http://192.168.199.190:8080" 啟動服務 systemctl enable kube-apiserver kube-scheduler kube-controller-manager systemctl start kube-apiserver kube-scheduler kube-controller-manager 安裝k8s node 節點:(node1、node2、node3 、node4) yum install kubernetes-node flannel docker -y 編輯配置檔案/etc/kubernetes/config  KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow_privileged=false" KUBE_MASTER="--master=http://192.168.199.190:8080" 編輯配置檔案/etc/kubernetes/kubelet KUBELET_ADDRESS="--address=127.0.0.1" KUBELET_HOSTNAME="--hostname_override=192.168.199.191" #節點IP KUBELET_API_SERVER="--api_servers=http://192.168.199.190:8080" KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause" 啟動服務 systemctl enable kubelet kube-proxy systemctl start kubelet kube-proxy k8s node 節點配置 flannel 初始化flannel的etcd配置 etcdctl -C 192.168.199.190:2379 set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' 編輯配置檔案/etc/sysconfig/flanneld /etc/sysconfig/flanneld FLANNEL_ETCD_PREFIX="/coreos.com/network" systemctl enable flanneld systemctl start flanneld