1. 程式人生 > >kubernetes(k8s)安裝部署

kubernetes(k8s)安裝部署

Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單並且高效,Kubernetes提供了應用部署,規劃,更新,維護的一種機制。

Kubernetes一個核心的特點就是能夠自主的管理容器來保證雲平臺中的容器按照使用者的期望狀態執行著(比如使用者想讓apache一直執行,使用者不需要關心怎麼去做,Kubernetes會自動去監控,然後去重啟,新建,總之,讓apache一直提供服務),管理員可以載入一個微型服務,讓規劃器來找到合適的位置,同時,Kubernetes也系統提升工具以及人性化方面,讓使用者能夠方便的部署自己的應用。

Kubernetes叢集包含有節點代理kubelet和Master元件(APIs, scheduler, etc),一切都基於分散式的儲存系統。下面這張圖是Kubernetes的架構圖。

d230f854160e272c861e5eca43dd1a2e9e98fff8

Kubernetes主要由以下幾個核心元件組成:

etcd儲存了整個叢集的狀態;

apiserver提供了資源操作的唯一入口,並提供認證、授權、訪問控制、API註冊和發現等機制;

controller manager負責維護叢集的狀態,比如故障檢測、自動擴充套件、滾動更新等;

scheduler負責資源的排程,按照預定的排程策略將Pod排程到相應的機器上;

kubelet負責維護容器的生命週期,同時也負責Volume(CVI)和網路(CNI)的管理;

Container runtime負責映象管理以及Pod和容器的真正執行(CRI);

kube-proxy負責為Service提供cluster內部的服務發現和負載均衡。

基本環境

作業系統:redhat7.2

Docker:1.12.6

網路規劃工具,統一分配叢集Docker容器的虛擬IP,並實現服務之間通訊:Flannel 0.7.0

需要關閉防火牆,並連線網路。

master:172.25.21.11 服務:apiserver, controller-manager, scheduler,etcd

node:172.25.21.12 服務:flannel, docker, kubelet, kube-proxy

master端安裝和配置etcd

配置本地解析

vim /etc/hosts

172.25.21.11 server11 master

172.25.21.12 node1

安裝etcd

yum install -y etcd

配置etcd

vim /etc/etcd/etcd.conf #修改部分內容如下

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS="http://server11:2379"

其中server11表示etcd伺服器主機名

執行etcd

systemctl start etcd #啟動etcd

systemctl enable etcd #開機自啟etcd

配置etcd的flannel資訊

etcdctl -C 172.25.21.11:2379 set /atomic.io/network/config '{"Network":"172.17.0.1/16"}'

master端安裝kubernetes-master

安裝

yum install kubernetes-master

修改配置檔案

vim /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

KUBE_ETCD_SERVERS="--etcd-servers=http://server11:2379"

KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,

其中KUBE_ADMISSION_CONTROL的原有的SecurityContextDeny和ServiceAccount是許可權相關的配置需要去掉。

配置全域性配置檔案

vim /etc/kubernetes/config

KUBE_MASTER="--master=http://master:8080"

啟動master服務

systemctl start kube-apiserver kube-scheduler kube-controller-manager

測試master服務

配置node1節點

配置本地解析

vim /etc/hosts

172.25.21.11 server11 master

172.25.21.12 node1

安裝服務

yum install -y docker flannel kubernetes-node

配置flannel

vim /etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://server11:2379"

FLANNEL_ETCD_PREFIX="/atomic.io/network"

配置全域性配置檔案

vim /etc/kubernetes/config

KUBE_MASTER="--master=http://master:8080"

配置kubelet元件

vim /etc/kubernetes/kubelet

KUBELET_HOSTNAME="--hostname-override=node1"

KUBELET_API_SERVER="--api-servers=http://master:8080"

啟動服務

systemctl start kubelet kube-proxy

測試叢集

在master節點執行

kubectl get nodes

本文轉自CSDN- kubernetes(k8s)安裝部署