天天看點

kubernetes筆記

master----------------

etcd 消息中間件,儲存了整個叢集的狀态;

apiserver 是整個系統的對外接口,并提供認證、授權、通路控制、API注冊和 發現等機制;

controller manager 負責維護叢集的狀态,比如故障檢測、自動擴充、滾動更新等,負責管理控制器,包括 endpoint-controller(重新整理服務和 pod 的關聯資訊)和 replication-controller(維護某個 pod 的複制為配置的數值)

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

slave-------------------

kubelet 是工作節點執行操作的 agent,負責具體的容器生命周期管理,根據從資料庫中擷取的資訊來管理容器,并上報 pod 運作狀态等,同時也負責Volume(CVI)和網絡(CNI) 的管理;

Container runtime 負責鏡像管理以及Pod和容器的真正運作(CRI);

kube-proxy 負責為Service提供cluster内部的服務發現和負載均衡,網絡代理轉發,是一個簡單的網絡通路代理,同時也是一個 Load Balancer。它負責将通路到某個服務的請求具體配置設定給工作節點上的 Pod

Pod ( 節點) 是一組緊密關聯的容器集合,排程的基本機關。Pod的設計理念是支援多個容器在一個Pod中共享網絡和 檔案系統,可以通過程序間通信和檔案共享這種簡單高效的方式組合完成服務。

Node(容器組) Pod真正運作的主機,可以實體機,也可以是虛拟機。為了管理Pod,每個Node 節點上至少要運作container runtime(比如docker或者rkt)、 kubelet 和 kube- proxy 服務。

Replication Controller 是用來通過label關聯管理Pod的,每個RC由一個或多個Pod組成

Label 是用于區分Pod、Service、RC的key/value鍵值對,Pod、Service、RC可以有多個label,但是每個label的key隻能對應一個value,整個系統都是通過Label進行關聯,得到真正需要操作的目标

Service k8s的最小操作單元,是定義在叢集中一組運作Pod集合的抽象資源,對外為一個單一的通路接口,配置設定一個唯一的IP

kubectl 用戶端指令行工具,将接收的指令,發送給kube-apiserver,作為對整個平台操作的入口

Replication Controller 負責維持Pods中的正常運作的Pod的個數

Endpoints Controller 負責維持Pods和Service的關聯關系

Node Controller 負責整個系統中node up 或down的狀态的響應和通知

Service Account & Token Controllers 負責為新的命名空間建立預設的賬号和API通路的Token

flannel  IP位址的配置設定

accessing_the_api 端口,IP 位址和代理的防火牆規則。

ux 使用者可以通過 web 界面操作 Kubernetes。

CNI Container Network Interface的簡稱

Replication Controller rc 來部署、更新Pod

Replica Set rs 下一代Replication Controller

Deployment 更加友善的管理Pod和Replica Set

節點 在 Kubernetes 中,節點是實際工作的點,節點可以是虛拟機或者實體機器,依賴于一個叢集環境。每個節點都有一些必要的服務以運作容器組,并且它們都可以通過主節點來管理。必要服務包括 Docker,kubelet 和代理服務

容器狀态 節點周期:Pending,Running,Terminated。節點狀态:NodeReachable 表示叢集可達,NodeReady 表示 kubelet 傳回 Status Ok 并且 HTTP 狀态檢查健康。

節點管理 節點并非 Kubernetes 建立,而是由雲平台建立,或者就是實體機器、虛拟機。在 Kubernetes 中,節點僅僅是一條記錄,節點建立之後,Kubernetes 會檢查其是否可用。

節點控制 在 Kubernetes 主節點中,節點控制器是用來管理節點的元件。主要包含:叢集範圍内節點同步,單節點生命周期管理。可以使用 kubectl 來一條一條的添加節點。

容器組 容器組是建立,排程,管理的最小機關。 一個容器組使用相同的 Docker 容器并共享卷(挂載點)。一個容器組是一個特定應用的打包集合,包含一個或多個容器

容器組管理 容器組是一個應用管理和部署的高層次抽象,同時也是一組容器的接口。容器組是部署、水準放縮的最小機關

容器組的生命狀态 包括若幹狀态值:pending、running、succeeded(所有的容器都正常退出。)、failed。

1,安裝docker

<code>yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo &amp;&amp; yum -y install docker-ce --nobest</code>

2,安裝 kubelet kubeadm kubectl

3,修改核心的運作參數

4,配置 kubelet(rpm -ql kubelet 檢視具體)

5,部署 (master)

<code>kubeadm init --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --pod-network-cidr 10.244.0.0/16 --v 5 --ignore-preflight-errors=all</code>

部署 (slave)

<code>kubeadm join 192.168.116.200:6443 --token rzmegv.g8k9kq60ectkrgov --discovery-token-ca-cert-hash sha256:a32c8299024f36a395b28ed58804dc41737d70ba544b3ece82450b57b81a9074</code>

6,部署 CNI (flannel)

7,檢視

`scp /etc/kubernetes/admin.conf 192.168.116.201:/etc/kubernetes/

master 的 admin.conf`

拷貝到各個節點

kubectl get nodes 檢視節點

kubectl get all -A 檢視啟動的服務

8,部署 Dashboard(儀表盤)

修改

YAML bind常用類型 Endpoints、 Service、 Deployment、Pod

1、 Endpoints 可以把外部的連結到k8s系統中,如下可以把199.199.199.199:3306 連結到k8s内部

Service部署一個内部虛拟IP,其他deployment可以連結。

2,Deployment 控制器适合部署無狀态的應用服務,用來管理pod和replicaset,具有上線部署、副本設定、滾動更新、復原等功能,還可提供聲明式更新

繼續閱讀