Kubernetes基礎(chǔ)-1

Kubernetes概述

  1. Kubernetes是什么
    1.Kubernetes是Google在2014年開源的一個(gè)容器集群管理系統(tǒng),Kubernetes簡稱K8S。
    2.K8S用于容器化應(yīng)用程序的部署,擴(kuò)展和管理。
    3.K8S提供了容器編排,資源調(diào)度,彈性伸縮,部署管理,服務(wù)發(fā)現(xiàn)等一系列功能。
    4.Kubernetes目標(biāo)是讓部署容器化應(yīng)用簡單高效。
    官方網(wǎng)站:https://kubernetes.io/

2.Kubernetes特性

創(chuàng)新互聯(lián)公司,為您提供網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)混凝土攪拌罐車等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

 1. 自我修復(fù)

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

3.Kubernetes集群架構(gòu)與組件
Kubernetes基礎(chǔ)-1

         Master組件

    1.kube-apiserver

Kubernetes API,集群的統(tǒng)一入口,各組件協(xié)調(diào)者,以RESTful API提供接口
服務(wù),所有對(duì)象資源的增刪改查和監(jiān)聽操作都交給APIServer處理后再提交給
Etcd存儲(chǔ)。
2.kube-controller-manager
處理集群中常規(guī)后臺(tái)任務(wù),一個(gè)資源對(duì)應(yīng)一個(gè)控制器,而ControllerManager
就是負(fù)責(zé)管理這些控制器的。
3.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、 Service等對(duì)象信息。

         Node組件

   1.kubelet

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

4.Kubernetes核心概念
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的訪問策略Kubernetes核心概念
Label : 標(biāo)簽,附加到某個(gè)資源上,用于關(guān)聯(lián)對(duì)象、查詢和篩選
Namespaces : 命名空間,將對(duì)象邏輯上隔離
Annotations :注釋

官方提供的三種部署方式

minikube
Minikube是一個(gè)工具,可以在本地快速運(yùn)行一個(gè)單點(diǎn)的Kubernetes,僅用于嘗試Kubernetes或日常開發(fā)的用戶使用。
部署地址: https://kubernetes.io/docs/setup/minikube/
kubeadm
Kubeadm也是一個(gè)工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。
部署地址: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
二進(jìn)制包
推薦,從官方下載發(fā)行版的二進(jìn)制包,手動(dòng)部署每個(gè)組件,組成Kubernetes集群。
下載地址: https://github.com/kubernetes/kubernetes/releases

kubectl命令行管理工具

Kubernetes基礎(chǔ)-1

業(yè)務(wù)發(fā)布常用命令如下:
1、創(chuàng)建
kubectl create deployment nginx --image=nginx:1.14
kubectl get deploy,pods
2、發(fā)布
kubectl expose deployment nginx --port=80 --type=NodePort --target-port=80 --name=nginx-service
kubectl get service
3、 更新
kubectl set image deployment/nginx nginx=nginx:1.15
4、 回滾
kubectl rollout history deployment/nginx
kubectl rollout undo deployment/nginx
5、 刪除
kubectl delete deploy/nginx
kubectl delete svc/nginx-service

資源編排(YAML)

k8s集群中部署應(yīng)用,除了在命令行快速部署外,一般都是采用yaml文件進(jìn)行部署,

YAML 是一種簡潔的非標(biāo)記語言。
語法格式:
? 縮進(jìn)表示層級(jí)關(guān)系
? 不支持制表符“tab” 縮進(jìn),使用空格縮進(jìn)
? 通常開頭縮進(jìn) 2 個(gè)空格
? 字符后縮進(jìn) 1 個(gè)空格,如冒號(hào)、逗號(hào)等
? “---” 表示YAML格式,一個(gè)文件的開始
? “#” 注釋

yaml字段過多,我們也不必一個(gè)一個(gè)去記憶,可以采用以下方法。
用run命令生成
kubectl create deployment nginx --image=nginx:1.14 -o yaml --dry-run> my-deploy.yaml
? 用get命令導(dǎo)出
kubectl get my-deploy/nginx -o=yaml --export > my-deploy.yaml
生成文件后根據(jù)實(shí)際應(yīng)用進(jìn)行修改。
? Pod容器的字段拼寫忘記了
kubectl explain pods.spec.containers

標(biāo)題名稱:Kubernetes基礎(chǔ)-1
瀏覽路徑:http://bm7419.com/article32/jcicpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名靜態(tài)網(wǎng)站、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)