溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Kubernetes()minikube的安裝

發(fā)布時(shí)間:2021-09-26 15:49:33 來源:億速云 閱讀:168 作者:柒染 欄目:系統(tǒng)運(yùn)維

這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行Kubernetes()minikube的安裝,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

Kubernetes

Kubernetes是一個(gè)開源的Docker容器編排系統(tǒng),Kubernetes簡(jiǎn)稱K8S。
調(diào)度計(jì)算集群的節(jié)點(diǎn),動(dòng)態(tài)管理上面的作業(yè)
通過使用[labels]和[pods]的概念,將應(yīng)用按邏輯單元進(jìn)行分組

K8S用于容器應(yīng)用程序的部署,擴(kuò)展和管理
K8S提供了容器編排,資源調(diào)度,彈性伸縮,部署管理,服務(wù)發(fā)現(xiàn)等一系列功能
Kubernetes目標(biāo)是讓部署容器化應(yīng)運(yùn)簡(jiǎn)單高效
官方網(wǎng)站:http://www.kubernetes.io

Kubernetes的特性

自我修復(fù):
在節(jié)點(diǎn)故障時(shí)重新啟動(dòng)失敗的容器,替換和重新部署,保證預(yù)測(cè)的副本數(shù)量;殺死健康檢查失敗的容器,并且在未準(zhǔn)備好之前不會(huì)處理客戶端請(qǐng)求,確保線上服務(wù)不中斷。
彈性伸縮:
使用命令、UI或者基于CPU使用情況自動(dòng)快速擴(kuò)容和縮容應(yīng)用程序?qū)嵗?,保證應(yīng)用業(yè)務(wù)高峰并發(fā)時(shí)的高可用性;業(yè)務(wù)低峰時(shí)回收資源,以最小成本運(yùn)行服務(wù)
自動(dòng)部署和回滾:
K8S采用滾動(dòng)更新應(yīng)用,一次更新一個(gè)Pod,而不是同時(shí)刪除所有Pod,如果更新過程中出現(xiàn)問題,將回滾更改,確保升級(jí)不受影響業(yè)務(wù)
服務(wù)發(fā)現(xiàn)和負(fù)載均衡
K8S為多個(gè)容器提供一個(gè)統(tǒng)一的訪問入口(內(nèi)部IP地址和UI個(gè)DNS地址),并且負(fù)載均衡關(guān)聯(lián)的所有容器,使得用戶無需考慮容器IP問題
機(jī)密和配置管理:
管理機(jī)密數(shù)據(jù)和應(yīng)用程序配置。而不需要把敏感數(shù)據(jù)暴露在鏡像里,提高敏感數(shù)據(jù)安全性。并且可以將一些常用的配置存儲(chǔ)在K8S中,方便應(yīng)用程序使用
存儲(chǔ)編排:
掛載外部存儲(chǔ)系統(tǒng),無論是來自本地存儲(chǔ),公有云(如AWS),還是網(wǎng)絡(luò)存儲(chǔ)(NFS、GlusterFS)都作為集群資源的一部分使用,極大提高存儲(chǔ)使用靈活性
批處理:
提供一次性任務(wù),定時(shí)任務(wù);滿足批量數(shù)據(jù)處理和分析的場(chǎng)景。

Kubernetes集群的架構(gòu)與組件

如何進(jìn)行Kubernetes()minikube的安裝
如何進(jìn)行Kubernetes()minikube的安裝

master組件

kube-apiserver:
Kubernetes API,集群的統(tǒng)一入口,各組件協(xié)調(diào)者,以RESTful API提供接口服務(wù),所有對(duì)象資源的增刪改查和監(jiān)聽操作都交給APIServer處理后再提交給Etcd存儲(chǔ)。
kube-controller-manager:
處理集群中常規(guī)后臺(tái)任務(wù),一個(gè)資源對(duì)應(yīng)一個(gè)控制器,而ControllerManager就是負(fù)責(zé)管理這些控制器的
kube-scheduler:
根據(jù)調(diào)度算法為新創(chuàng)建的Pod選擇一個(gè)Node節(jié)點(diǎn),可以任意部署,可以部署在同一個(gè)節(jié)點(diǎn)上,也可以部署在不同的節(jié)點(diǎn)上
etcd:
分布式鍵值存儲(chǔ)系統(tǒng),用于保存集群狀態(tài)數(shù)據(jù),比如Pod、Server等對(duì)象信息。

node組件

kubelet:
kubelet是MAster在Node節(jié)點(diǎn)上的Agent,管理本機(jī)運(yùn)行容器的生命周期,比如創(chuàng)建容器,Pod掛載數(shù)據(jù)卷、下載secret、獲取容器和節(jié)點(diǎn)狀態(tài)等工作。kubelet將Pod轉(zhuǎn)換成一組容器。
kube-proxy:
在Noed節(jié)點(diǎn)上實(shí)現(xiàn)Pod網(wǎng)絡(luò)代理,維護(hù)網(wǎng)絡(luò)規(guī)劃和四層復(fù)=負(fù)載均衡工作
docker或rocket:
容器引擎,運(yùn)行容器

Kubernetes核心概念

如何進(jìn)行Kubernetes()minikube的安裝

Pod:
最小部署單元
一組容器的集合
一個(gè)Pod中的容器共享網(wǎng)絡(luò)命名空間
Pod是短暫的
Controllers:
ReplicaSet:確保 預(yù)期的Pod副本數(shù)量
Deployment :無狀態(tài)應(yīng)用部署
StatefulSet: 有狀態(tài)應(yīng)用部署
DaemonSet :確保所有Node運(yùn)行同一個(gè)Pod
Job:一次性任務(wù)
Cronjob: 定時(shí)任務(wù)
更高級(jí)層次對(duì)象,部署和管理Pod
Service:
防止Pod失聯(lián)
定義一組Pod的訪問策略
Label: 標(biāo)簽,附加到某個(gè)資源上,用于關(guān)聯(lián)對(duì)象。查詢和篩選
Namespaces: 命名空間, 將對(duì)象邏輯上隔離
Annotations: 注釋

flannel容器集群網(wǎng)絡(luò)部署

如何進(jìn)行Kubernetes()minikube的安裝
如何進(jìn)行Kubernetes()minikube的安裝

minikube

minikube是一個(gè)工具,可以在本地快速運(yùn)行一個(gè)單點(diǎn)的kubernetes,僅用于嘗試k8s或日常開發(fā)的用戶使用

實(shí)驗(yàn)環(huán)境

master 192.168.13.131  安裝etcd kubernetes flannelnode    192.168.13.132  安裝flannel kubernetes

一在master上配置etcd

[root@promote ~]# yum install etcd kubernetes flannel -y   ##安裝組件[root@promote ~]# vim /etc/etcd/etcd.conf  ##配置etcd配置文件
    3 ETCD_DATA_DIR="/var/lib/etcd/default.etcd"  ##數(shù)據(jù)目錄
    6 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"  ##監(jiān)聽任意網(wǎng)絡(luò)和端口
    9 ETCD_NAME="default"  ##默認(rèn)名稱
 21 ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"  ##群集訪問地址段落

二,在master上配置apiserver

 [root@promote ~]# vim /etc/kubernetes/apiserver ##配置apiserver配置文件
     8 KUBE_API_ADDRESS="--address=0.0.0.0"  ##修改api地址
 11 KUBE_API_PORT="--port=8080"  ##api監(jiān)聽端口號(hào)
 14 KUBELET_PORT="--kubelet-port=10250"  ##kubelet端口號(hào)
 17 KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"   ##etcd服務(wù)地址
 20 KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" ##服務(wù)地址池
 23 KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExis    ts,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"
 ##控制器模式
 26 KUBE_API_ARGS=""  ##api參數(shù)

三,在master上配置flannel網(wǎng)絡(luò)

    [root@promote ~]# vim /etc/sysconfig/flanneld
    FLANNEL_ETCD_ENDPOINTS="http://192.168.13.131:2379"   ##修改etcd地址為本機(jī)的地址
    FLANNEL_ETCD_PREFIX="/atomic.io/network"  ##網(wǎng)絡(luò)指定文件

四,在master上啟動(dòng)所有服務(wù)

[root@promote ~]# for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES; systemctl enable $SERVICES ; systemctl status $SERVICES; done##啟動(dòng) etcd kube-apiserver kube-controller-manager kube-scheduler四個(gè)服務(wù),設(shè)置開機(jī)自啟并查看狀態(tài)

五,在master上設(shè)置etcd網(wǎng)絡(luò)

[root@promote ~]# etcdctl -C //192.168.13.131:2379 set /atomic.io/network/config '{"Network":"10.1.0.0/16"}'[root@promote ~]# systemctl stop firewalld.service   ##關(guān)閉防火墻[root@promote ~]# setenforce 0

六,在node服務(wù)器配置kubernetes配置文件

[root@promote ~]# yum install flannel kubernetes -y[root@promote ~]# vim /etc/kubernetes/config
 13 KUBE_LOGTOSTDERR="--logtostderr=true"  ##錯(cuò)誤日志
 16 KUBE_LOG_LEVEL="--v=0"  ##級(jí)別
 19 KUBE_ALLOW_PRIV="--allow-privileged=false"  ##權(quán)限
 22 KUBE_MASTER="--master=http://192.168.13.131:8080"   ##指定master地址
 23 KUBE_ETCD_SERVERS="--etcd_server=http://192.168.13.131:2379"  ##指定etcd地址

七,在node配置kubelet配置文件

[root@promote ~]# vim /etc/kubernetes/kubeletKUBELET_ADDRESS="--address=0.0.0.0"  ##所有地址KUBELET_PORT="--port=10250"   ##端口號(hào)KUBELET_HOSTNAME="--hostname-override=192.168.13.132"  ##本地主機(jī)地址KUBELET_API_SERVER="--api-servers=http://192.168.13.131:8080"  ##apiserver地址KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest"##pod容器KUBELET_ARGS=""  ##參數(shù)

八,在node配置flannel網(wǎng)絡(luò)配置文件

[root@promote ~]# vim /etc/sysconfig/flanneld FLANNEL_ETCD_ENDPOINTS="http://192.168.13.131:2379"  ##指定etcd服務(wù)地址

九,在node開啟所有服務(wù)

[root@promote ~]# systemctl stop firewalld.service   ##關(guān)閉防火墻[root@promote ~]# setenforce 0[root@promote ~]# for SERVICES in flanneld kube-proxy kubelet docker; do systemctl restart $SERVICES; systemctl enable $SERVICES; systemctl status $SERVICES; done##開啟flanneld kube-proxy kubelet docker服務(wù)

十,在master服務(wù)器上查看node節(jié)點(diǎn)

[root@promote ~]# kubectl get nodesNAME             STATUS    AGE192.168.13.132   Ready     1m

關(guān)于如何進(jìn)行Kubernetes()minikube的安裝就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI