kubernetes(k8s)安装部署
Kubernetes是一個(gè)開(kāi)源的,用于管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡(jiǎn)單并且高效,Kubernetes提供了應(yīng)用部署,規(guī)劃,更新,維護(hù)的一種機(jī)制。
Kubernetes一個(gè)核心的特點(diǎn)就是能夠自主的管理容器來(lái)保證云平臺(tái)中的容器按照用戶的期望狀態(tài)運(yùn)行著(比如用戶想讓apache一直運(yùn)行,用戶不需要關(guān)心怎么去做,Kubernetes會(huì)自動(dòng)去監(jiān)控,然后去重啟,新建,總之,讓apache一直提供服務(wù)),管理員可以加載一個(gè)微型服務(wù),讓規(guī)劃器來(lái)找到合適的位置,同時(shí),Kubernetes也系統(tǒng)提升工具以及人性化方面,讓用戶能夠方便的部署自己的應(yīng)用。
Kubernetes集群包含有節(jié)點(diǎn)代理kubelet和Master組件(APIs, scheduler, etc),一切都基于分布式的存儲(chǔ)系統(tǒng)。下面這張圖是Kubernetes的架構(gòu)圖。
?
?
Kubernetes主要由以下幾個(gè)核心組件組成:
?
etcd保存了整個(gè)集群的狀態(tài);
apiserver提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問(wèn)控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制;
controller manager負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測(cè)、自動(dòng)擴(kuò)展、滾動(dòng)更新等;
scheduler負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上;
kubelet負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理;
Container runtime負(fù)責(zé)鏡像管理以及Pod和容器的真正運(yùn)行(CRI);
kube-proxy負(fù)責(zé)為Service提供cluster內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡。
?基本環(huán)境
操作系統(tǒng):redhat7.2
Docker:1.12.6
網(wǎng)絡(luò)規(guī)劃工具,統(tǒng)一分配集群Docker容器的虛擬IP,并實(shí)現(xiàn)服務(wù)之間通信:Flannel 0.7.0
需要關(guān)閉防火墻,并連接網(wǎng)絡(luò)。
?
master:172.25.21.11 服務(wù):apiserver, controller-manager, scheduler,etcd
node:172.25.21.12 服務(wù):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??? #修改部分內(nèi)容如下
?
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://server11:2379"
?
其中server11表示etcd服務(wù)器主機(jī)名
?
運(yùn)行etcd
systemctl start etcd??? #啟動(dòng)etcd
systemctl enable etcd??? #開(kāi)機(jī)自啟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是權(quán)限相關(guān)的配置需要去掉。
?
配置全局配置文件
vim /etc/kubernetes/config
?
KUBE_MASTER="--master=http://master:8080"
?
啟動(dòng)master服務(wù)
systemctl start kube-apiserver kube-scheduler kube-controller-manager
1
測(cè)試master服務(wù)
?
配置node1節(jié)點(diǎn)
配置本地解析
vim /etc/hosts
?
172.25.21.11??? server11 master
172.25.21.12??? node1
?
安裝服務(wù)
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"
?
啟動(dòng)服務(wù)
systemctl start kubelet kube-proxy
?
測(cè)試集群
在master節(jié)點(diǎn)運(yùn)行
?
kubectl get nodes
---------------------
?
總結(jié)
以上是生活随笔為你收集整理的kubernetes(k8s)安装部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tensorflow一元二次函数拟合
- 下一篇: Mac cnpm装包时提示Error: