k8s實踐(二):基本概念、kubectl命令和資料分享

概念

1. Kubernetes簡介

Kubernetes是google開源的容器集羣管理系統,是Google多年大規模容器管理技術Borg的開源版本,主要功能包括:html

  • 基於容器的應用部署、維護和滾動升級
  • 負載均衡和服務發現
  • 跨機器和跨地區的集羣調度
  • 自動伸縮
  • 無狀態服務和有狀態服務
  • 普遍的 Volume 支持
  • 插件機制保證擴展性

Kubernetes 發展很是迅速,已經成爲容器編排領域的領導者。node

2. Kubernetes核心組件

Kubernetes 主要由如下幾個核心組件組成:git

  • etcd 保存了整個集羣的狀態;
  • apiserver 提供了資源操做的惟一入口,並提供認證、受權、訪問控制、API註冊和發現等機制;
  • controller manager 負責維護集羣的狀態,好比故障檢測、自動擴展、滾動更新等;
  • scheduler 負責資源的調度,按照預約的調度策略將Pod調度到相應的機器上;
  • kubelet 負責維護容器的生命週期,同時也負責Volume(CVI)和網絡(CNI)的管理;
  • Container runtime 負責鏡像管理以及Pod和容器的真正運行(CRI);
  • kube-proxy 負責爲Service提供cluster內部的服務發現和負載均衡

k8s實踐(二):基本概念、kubectl命令和資料分享

3. Kubernetes基本概念

Cluster

集羣是指由Kubernetes使用一系列的物理機、虛擬機和其餘基礎資源來運行你的應用程序github

Node

一個node就是一個運行着Kubernetes的物理機或虛擬機,而且pod能夠在其上面被調度
k8s實踐(二):基本概念、kubectl命令和資料分享api

Pod

一個pod對應一個由相關容器和卷組成的容器組網絡

k8s實踐(二):基本概念、kubectl命令和資料分享

Label

一個label是一個被附加到資源上的鍵/值對,譬如附加到一個Pod上,爲它傳遞一個用戶自定的而且可識別的屬性。Label還能夠被應用來組織和選擇子網中的資源負載均衡

selector

是一個經過匹配labels來定義資源之間關係得表達式,例如爲一個負載均衡的service指定所目標Podide

Replication Controller

replication controller是爲了保證必定數量被指定的Pod的複製品在任什麼時候間都能正常工做。它不只容許複製的系統易於擴展,還會處理當pod在機器在重啓或發生故障的時候再次建立一個工具

ReplicaSet

在新版本的Kubernetes中建議使用ReplicaSet來取代ReplicationCtronller。ReplicaSet跟ReplicationCtronller沒有本質的不一樣,只是名字不同,而且ReplicaSet支持集合式的selector。網站

Deployment

Deployment爲Pod和ReplicaSet提供了一個聲明式定義(declarative)方法,用來替代之前的ReplicationController來方便的管理應用。典型的應用場景包括:

  • 定義Deployment來建立Pod和ReplicaSet
  • 滾動升級和回滾應用
  • 擴容和縮容
  • 暫停和繼續Deployment

Service

一個service定義了訪問pod的方式,就像單個固定的IP地址和與其相對應的DNS名之間的關係

k8s實踐(二):基本概念、kubectl命令和資料分享k8s實踐(二):基本概念、kubectl命令和資料分享

Volume

一個volume是一個目錄,可能會被容器做爲未見系統的一部分來訪問。Kubernetes volume 構建在Docker Volumes之上,而且支持添加和配置volume目錄或者其餘存儲設備

Secret

Secret存儲了敏感數據,例如能容許容器接收請求的權限令牌

Name

用戶爲Kubernetes中資源定義的名字

Namespace

Namespace 比如一個資源名字的前綴。它幫助不一樣的項目、團隊或是客戶能夠共享cluster,例如防止相互獨立的團隊間出現命名衝突

Annotation(註解)

相對於label來講能夠容納更大的鍵值對,它對咱們來講多是不可讀的數據,只是爲了存儲不可識別的輔助數據,尤爲是一些被工具或系統擴展用來操做的數據

2、kubectl命令

kubectl是Kubernetes裏的命令行接口,用它來控制Kubernetes集羣。
Kubectl的子命令主要分爲8個類別:

  • 基礎命令(初學者都會使用的)
  • 基礎命令(中級)
  • 部署命令
  • 集羣管理命令
  • 故障排查和調試命令
  • 高級命令
  • 設置命令
  • 其餘命令

熟悉這些命令有助於你們來操做和管理kubernetes集羣。

k8s實踐(二):基本概念、kubectl命令和資料分享

3、資料分享

網站博客

1.Kubernetes官網
2.Kubernetes Documentation
3.Kubernetes中文社區
4.源碼
5.Kubernetes(K8S)中文文檔
6.天天5分鐘玩轉Kubernetes
7.Kubernetes 指南

kubectl參考資料:

1.https://www.bookstack.cn/read/Kubernetes-zh/66.md
2.https://cheatsheet.dennyzhang.com/cheatsheet-kubernetes-a4
3.https://kubernetes.io/docs/reference/kubectl/kubectl/
4.https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
5.https://feisky.gitbooks.io/kubernetes/components/kubectl.html?h=kubectl

書籍

1.《Kubernetes權威指南 從Docker到Kubernetes實踐全接觸》
2.《Kubernetes in Action中文版》
3.《kubernetes-chinese-docs》
4.《Kubernetes進階實戰》
5.《kubernetes手冊2017最新版》
6.《基於Kubernetes的容器雲平臺實戰》
7.《Docker 容器與容器雲(第2版)》
8.《Kubernetes指南》
 
下載連接:https://pan.baidu.com/s/1YsA2-X1h0mFQ3rX6tb8WOg 提取碼:b7f1

相關文章
相關標籤/搜索