-

與pod建立連接
Service
Service :與云原生應(yīng)用中“微服務(wù)”概念——對應(yīng)
Kubernetes集群為每一個Service分配一個集群唯一的IP地址,在service的生命周期內(nèi),該IP地址不變﹔在內(nèi)部DNS的支持下,輕松實現(xiàn)服務(wù)發(fā)現(xiàn)機(jī)制
Service通過label selector關(guān)聯(lián)到實際支撐業(yè)務(wù)運(yùn)行的Pod上,并通過集群內(nèi)置的服務(wù)負(fù)載均衡將服務(wù)請求分發(fā)到后端Pod
通過nodeport或設(shè)置loadbalancer機(jī)制實現(xiàn)集群外部對service的訪問
Controllers
Controller是Kubernetes核心對象之一
Controller用于保證集群內(nèi)一組Pod能始終按照某種期望的狀態(tài)(desired state)正常運(yùn)行
狀態(tài)包括:Pod副本數(shù)量、節(jié)點選擇、資源約束、持久化數(shù)據(jù)維持等
Kubernetes支持多種Controller,常用的Deployment
、replicaset、statefulset、daemonset等
ReplicaSet
ReplicaSet:確保健康Pod的副本數(shù)始終滿足用戶定義的數(shù)量
前身是ReplicationController(rc)
相比rc,增加集合式label selector的支持
支持單獨使用,但更多隱藏在Deployment控制器后面,由deployment自動管理
Deployment
Deployment :為Pod和ReplicaSet提供了聲明式的定義(declarative)
用戶在deployment文件中描述期望狀態(tài),Deployment controller就會自動將Pod和Replica Set的實際狀態(tài)改變到期望狀態(tài)
Deployment支持Pod的RollingUpdate,并自動管理背后的ReplicaSet
Deployment支持將pod Rollback到之前的任意revision(僅限于pod-template模板改動)
StatefulSet
StatefulSet:提供對有狀態(tài)的應(yīng)用的部署和控制的支持,1.9版本GA
適用場景︰穩(wěn)定的持久化存儲、穩(wěn)定的網(wǎng)絡(luò)標(biāo)志、有序部署有序擴(kuò)展、有序收縮有序刪除、有序自動滾動升級等
Pod的存儲必須由PersistentVolume Provisioner 根據(jù)請求的Storage Class進(jìn)行配置,或由管理員預(yù)先配置好。
考慮數(shù)據(jù)安全性,伸縮或刪除StatefulSet不會刪除關(guān)聯(lián)的存儲﹔另外StatefulSet目前要求Headless Service負(fù)責(zé)Pod的網(wǎng)絡(luò)身份,用戶有責(zé)任創(chuàng)建此服務(wù)
DaemonSet
DaemonSet:保證在每個Node上都運(yùn)行一個Pod副本
適用場景∶系統(tǒng)Daemon程序、監(jiān)控跟蹤、日志收集等
Kubernetes 1.6之后,可設(shè)置更新策略:支持滾動更新
可指定Node: nodeSelector、nodeAffinity.podAffinity
ConfigMap
ConfigMap:常用來向Pod提供非敏感的配置信息
ConfigMap 用于保存配置數(shù)據(jù)的鍵值對,可以用來保存單個屬性,也可以用來保存配置文件
ConfigMap可以使用命令行基于字面值、文件或目錄來創(chuàng)建或通過configmap對象定義文件創(chuàng)建
ConfigMap可以通過三種方式在Pod中使用:環(huán)境變量、容器命令行參數(shù)或以文件形式通過數(shù)據(jù)卷插件掛載到Pod中

Secret
Secret解決的是集群內(nèi)密碼、token、密鑰等敏感數(shù)據(jù)的配置問題
常用于與ServiceAccount關(guān)聯(lián),存儲在tmpfs 文件系統(tǒng)中,Pod刪除后Secret文件也會對應(yīng)的刪除
支持Opaque , kubernetes.io/Service Account , kubernetes.io/dockerconfigjson三種類型
Secret可以以Volume或者環(huán)境變量的方式使用
查看全部 -


Pod:集群調(diào)度基本單元
Pod :一個有特定關(guān)系的容器集合
Pod是集群中可以創(chuàng)建和部署的最小且最簡的kubernetes對象單元
Pod也是一種封裝。它封裝了應(yīng)用容器,存儲資源、獨立的網(wǎng)絡(luò)IP以及決定容器如何運(yùn)行的策略選項
每個Pod中預(yù)置一個Pause容器,其名字空間、IPC資源、網(wǎng)絡(luò)和存儲資源被Pod內(nèi)其他容器共享。Pod中的所有容器緊密協(xié)作,并且作為一個整體被管理、調(diào)度和運(yùn)行
Pod生命周期
Pod :一個非持久性實體
查看全部 -

Namespace(名字空間)
Namespace,不僅僅是一個屬性,本身也是一個object
Namespace :用于將物理集群劃分為多個虛擬集群
Namespace間完全隔離,因此也常被用來隔離不同的用戶(及權(quán)限)
內(nèi)置三個Namespaces: default、kube-system和kube-public,Node和PersistentVolume不屬于任何namespace
Label(標(biāo)簽)
Label用于建立集群對象之間的靈活的、松耦合的多維關(guān)聯(lián)關(guān)系
一個label是一個鍵-值對,其中的key、value均由用戶自己定義
label可以附著在任何對象上,每個對象也可以有任意個標(biāo)簽。標(biāo)簽可在對象定義時附加上,也可以通過命令動態(tài)管理標(biāo)簽
Label可以將有組織目的的結(jié)構(gòu)映射到集群對象上,從而形成一個與現(xiàn)實世界管理結(jié)構(gòu)同步對應(yīng)松耦合的、多維的對象管理結(jié)構(gòu)

Annotations(注解)
Annotations :可以將任意非標(biāo)識性元數(shù)據(jù)附加到對象上
Annotations也是以鍵值對形式呈現(xiàn)
◆工具和庫可以檢索到并使用這些Annotations元數(shù)據(jù)
將數(shù)據(jù)作為Annotation附著在對象上,有利于創(chuàng)建一些用于部署、管理和做內(nèi)部檢查的共享工具或客戶端
查看全部 -
Kubernetes對象
Kubernetes對象∶是一種持久化的、用于表示集群狀態(tài)的實體
—種聲明式的意圖的記錄,一般使用yaml文件描述對象
Kubernetes集群使用Kubernetes對象來表示集群的狀態(tài)
通過API/kubectl管理Kubernetes對象
查看全部 -

Node:工作負(fù)載節(jié)點
Node : Kubernetes集群中真正的工作負(fù)載節(jié)點
Kubernetes集群由多個Node共同承擔(dān)工作負(fù)載,Pod被分配到某個具體的Node上執(zhí)行
kubernetes通過node controller對node資源進(jìn)行管理。支持動態(tài)在集群中添加或刪除Node
每個集群Node上都會部署Kubelet和Kube-proxy兩個組件
組件:Kubelet
Kubelet :
位于集群中每個Node上的非容器形式的服務(wù)進(jìn)程組件,Master和node之間的橋梁
處理Master下發(fā)到本Node上的Pod創(chuàng)建、啟停等管理任務(wù);向APIServer注冊Node信息
監(jiān)控本Node上容器和節(jié)點資源情況,并定期向Master匯報節(jié)點資源占用情況
組件:Kube-proxy
Kube-proxy:運(yùn)行在每個Node上
Service抽象概念的實現(xiàn),將到Service的請求按策略(負(fù)載均衡)算法分發(fā)到后端Pod(Endpoint)上
默認(rèn)使用iptables mode實現(xiàn)
支持nodeport模式,實現(xiàn)從外部訪問集群內(nèi)的service
查看全部 -

邏輯控制中心
Master
Kubernetes集群大腦,控制平面∶
所有集群的控制命令都傳遞給Master組件并在其上執(zhí)行
每個Kubernetes集群至少有一套Master組件(當(dāng)前默認(rèn):一個)
每套master組件包括三個核心組件(apiserver, scheduler
和controller-manager)以及集群數(shù)據(jù)配置中心etcd
組件:API Server-核心
API Server :
集群控制的唯一入口,是提供Kubernetes集群控制RESTful API的核心組件
集群內(nèi)各個組件之間數(shù)據(jù)交互和通信的中樞
提供集群控制的安全機(jī)制(身份認(rèn)證、授權(quán)以及admission control)
組件:Scheduler
Scheduler :
通過API Server的Watch接口監(jiān)聽新建Pod副本信息,并通過調(diào)度算法為該P(yáng)od選擇一個最合適的Node
支持自定義調(diào)度算法provider
默認(rèn)調(diào)度算法內(nèi)置預(yù)選策略和優(yōu)選策略,決策考量資源需求、服務(wù)質(zhì)量、軟硬件約束、親緣性、數(shù)據(jù)局部性等指標(biāo)參數(shù)
組件:ControllerManager
ControllerManager :
集群內(nèi)各種資源controller的核心管理者
針對每一種具體的資源,都有相應(yīng)的Controller
保證其下管理的每個Controller所對應(yīng)的資源始終處于“期望狀態(tài)”。
組件:Etcd
Etcd :
Kubernetes集群的主數(shù)據(jù)庫,存儲著所有資源對象以及狀態(tài)
默認(rèn)與Master組件部署在一個Node上
Etcd的數(shù)據(jù)變更都是通過API Server進(jìn)行
查看全部 -
架構(gòu)圖查看全部 -


yaml文件
1.service部署
創(chuàng)建服務(wù):kubectl create -f hello-service.yaml --record
查看服務(wù)是否創(chuàng)建成功:kubectl get svc |grep hello-service
查看服務(wù)詳細(xì)信息:kubectl describe svc/hello-service
訪問該服務(wù):curl ip+port/hello
在前臺啟動一個訪問kube內(nèi)部的busybox容器:kubectl run -i --tty busybox --image=busybox --restart=Never

2.deployment部署
hello-deployment文件




3.請求的自動負(fù)載均衡
4.服務(wù)伸縮
修改deployment文件的replicas
修改生效
日志5.服務(wù)版本升級與回退
修改deployment文件版本
監(jiān)控pod升級過程:逐步替換

快速回滾上一版本:
查看全部 -
容器編排管理平臺
Kubernetes作為容器管理平臺提供∶
以Pod(容器組)為基本的編排和調(diào)度單元以及聲明式的對象配置模型(控制器、configmap、secret等)
資源配額與分配管理
健康檢查、自愈、伸縮與滾動升級
微服務(wù)支撐平臺
Kubernetes提供了對微服務(wù)的支撐︰
服務(wù)發(fā)現(xiàn)、服務(wù)編排與內(nèi)部路由支持
服務(wù)快速部署和自動負(fù)載均衡
提供對“有狀態(tài)”服務(wù)的支持等
可移植的“云平臺”
Kubernetes提供∶
新一代應(yīng)用云化的事實標(biāo)準(zhǔn),成為面向云原生應(yīng)用的新可移植層,即新“云平臺"
為用戶提供簡單且一致的容器化應(yīng)用部署、伸縮和管理機(jī)制,形成新的、通用的應(yīng)用云化模型
云廠商鎖定的問題得以解決,云應(yīng)用支持跨云遷移
Why Kubernetes
從生態(tài)圈角度∶
Google的業(yè)內(nèi)最成熟的容器編排管理經(jīng)驗的輸出
2017年戰(zhàn)勝Docker Swarm和Apache Mesos,成為云原生應(yīng)用唯─值得綁定的容器編排管理平臺
傳統(tǒng)云平臺提供商的全面支持:Google k8s engine、Red Hat的OpenShift、Microsoft的Azure container service、IBM的cloud container service
從云應(yīng)用角度,Kubernetes帶來的好處∶
容器管理、調(diào)度和編排的事實標(biāo)準(zhǔn)∶擺脫鎖定,支持跨云
先進(jìn)的Workload管理之經(jīng)驗?zāi)P?Pod和Controllers
原生支持微服務(wù)抽象︰服務(wù)注冊、服務(wù)發(fā)現(xiàn)和自動負(fù)載均衡
查看全部 -
Kubernetes是什么?
Kubernetes是以Google內(nèi)部容器編排管理平臺Borg為原型的開源實現(xiàn)
一個容器編排管理平臺
一個微服務(wù)支撐平臺
一個可移植的“云平臺”
查看全部 -
1查看全部 -
1
查看全部 -
虛擬化在20世紀(jì)60年代被提出
VMware虛擬機(jī):提升計算機(jī)資源,降低使用成本
亞馬遜開啟基礎(chǔ)設(shè)施即服務(wù)
以虛擬化方式部署敏感,機(jī)密的服務(wù)
平臺即服務(wù) PaaS
軟件即服務(wù) SaaS
容器化2013-至今
docker:容器新時代
與VM相比,容器具有開發(fā)交付流程操作對象同步、執(zhí)行更為高效、資源占用更為集約等優(yōu)勢。
計算基本單元由虛擬機(jī)變?yōu)榱巳萜鳎絹碓蕉鄳?yīng)用的構(gòu)建、部署與運(yùn)行選擇在容器中進(jìn)行。
云原生:初期2015-至今
基礎(chǔ)前提︰應(yīng)用的容器化和微服務(wù)化。容器,作為應(yīng)用部署、運(yùn)行和管理的基本單元;
CNCF,Kubernetes : 2015年
CNCF組織的成立為應(yīng)用上云安全地采用云原生模式提供了更穩(wěn)、更快、更安全的解決方案,其核心是Kubernetes。
查看全部 -

盛世嫡妃是的發(fā)送到飯
查看全部 -
地方所發(fā)生的事達(dá)搜索的發(fā)送到發(fā)的查看全部
舉報