日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes——基本概念与理论

發布時間:2024/2/28 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes——基本概念与理论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這里寫目錄標題

  • 一、Kubernetes是什么?
  • 二、Kubernetes特性
  • 三、Kubernetes集群架構與組件
    • 1、Master組件
    • 2、Node組件
  • 四、Kubernetes核心概念
  • 五、官方提供的三種部署方式

一、Kubernetes是什么?

  • Kubernetes,簡稱 K8s,是一個開源的,用于管理云平臺中多個主機上的容器化的應用
  • Kubernetes 是 Google 在 2014 年開源的一個容器集群管理系統,使用 Go 開發,簡稱為 K8s,用于容器化應用程序的部署,擴展和管理
  • K8s 提供了容器編排(yml),資源調度,彈性伸縮,部署管理,服務發現等一系列功能,目標是讓部署容器化應用簡單高效
  • K8s 兼容多種容器類型,市場占用率最高,官網:https://kubernetes.io/

二、Kubernetes特性

  • 自我修復
    在節點故障時重新啟動失敗的容器,替換和重新部署,保證預期的副本數量;殺死健康檢查失敗的容器,并且在未準備好之前不會處理客戶端請求,確保線上服務不中斷。
  • 彈性伸縮
    使用命令、UI或者基于CPU使用情況自動快速擴容和縮容應用程序實例,保證應用業務高峰并發時的高可用性;業務低峰時回收資源,以最小成本運行服務。
  • 自動部署和回滾(此處可以多了解一下藍綠部署、滾動部署、灰度發布、金絲雀發布)
    K8S采用滾動更新策略更新應用,一次更新一個Pod,而不是同時刪除所有Pod,如果更新過程中出現問題,將回滾更改,確保升級不受影響業務。
  • 服務發現和負載均衡
    K8S為多個容器提供一個統一訪問入口(內部IP地址和一個DNS名稱),并且負載均衡關聯的所有容器,使得用戶無需考慮容器IP問題。
  • 機密和配置管理
    管理機密數據和應用程序配置,而不需要把敏感數據暴露在鏡像里,提高敏感數據安全性。并可以將一些常用的配置存儲在K8S中,方便應用程序使用。
  • 存儲編排
    掛載外部存儲系統,無論是來自本地存儲,公有云(如AWS),還是網絡存儲(如NFS、GlusterFS、Ceph)都作為集群資源的一部分使用,極大提高存儲使用靈活性。
  • 批量處理
    提供一次性任務,定時任務;滿足批量數據處理和分析的場景

三、Kubernetes集群架構與組件

1、Master組件

  • kube-apiserver
    Kubernetes API,集群的統一入口,各組件協調者,以RESTful APr提供接口
    服務,所有對象資源的增刪改查和監聽操作都交給APIServer處理后再提交給Etcd存儲。
  • kube-controller-manager(控制器管理中心-定義資源類型)
    處理集群中常規后臺任務,一個資源對應一個控制器,而CcontrollerManager就是負責管理這些控制器的。
  • kube-scheduler
    根據調度算法為新創建的Pod選擇一個Node節點,可以任意部署,可以部署在同一個節點上,也可以部署在不同的節點上。
  • etcd
    分布式鍵值存儲系統(特性:服務自動發現)。用于保存集群狀態數據,
    比如Pod、Service等對象信息
  • AUTH:認證模塊
    K8S內部支持使用RBAC認證的方式進行認證

2、Node組件

  • kubelet
    kubelet是Master在Node節點上的Agent,管理本機運行容器的生命周期,
    比如創建容器、Pod掛載數據卷、下載secret、獲取容器和節點狀態等工作。kubelet將每個Pod轉換成一組容器。
  • kube-proxy
    在Node節點上實現Pod網絡代理,維護網絡規則、pod之間通信和四層負載均衡工作。默認會寫入規則至iptables ,目前支持IPVS、同時還支持namespaces
  • docker或rocket
    容器引擎,運行容器。

四、Kubernetes核心概念

Pod:

*K8s 中最小的部署單元,是一組容器的集合*一個 Pod 中的容器共享網絡命名空間,像一個小型局域網一樣,所以其中容器之間可以彼此通訊*Pod 是短暫的,因為其一旦故障,會重新創建新的*K8s 管理的基本都是業務,而業務都是跑在 Pod 上

Controllers(控制器):

ReplicaSet:創建資源,確保預期的 Pod 副本數量Deployment:無狀態應用部署StatefulSet:有狀態應用部署DaemonSet:確保所有 Node 運行同一個 Pod,即管理進程資源Job:一次性任務Cronjob:周期性計劃定時任務

Service:

對外提供服務,防止 Pod 失聯,定義一組 Pod 的訪問策略,方便訪問

Label:

標簽,附加到某個資源上,用于關聯對象、查詢和篩選

Namespaces:

命名空間,將對象邏輯上隔離,用于角色管理和控制

Annotations:

注釋,方便閱讀

五、官方提供的三種部署方式

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

總結

以上是生活随笔為你收集整理的Kubernetes——基本概念与理论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。