中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes基礎-1

發布時間:2020-05-31 16:21:30 來源:網絡 閱讀:329 作者:tom_tuwei 欄目:系統運維

Kubernetes概述

  1. Kubernetes是什么
    1.Kubernetes是Google在2014年開源的一個容器集群管理系統,Kubernetes簡稱K8S。
    2.K8S用于容器化應用程序的部署,擴展和管理。
    3.K8S提供了容器編排,資源調度,彈性伸縮,部署管理,服務發現等一系列功能。
    4.Kubernetes目標是讓部署容器化應用簡單高效。
    官方網站:https://kubernetes.io/

2.Kubernetes特性

 1. 自我修復

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

3.Kubernetes集群架構與組件
Kubernetes基礎-1

         Master組件

    1.kube-apiserver

Kubernetes API,集群的統一入口,各組件協調者,以RESTful API提供接口
服務,所有對象資源的增刪改查和監聽操作都交給APIServer處理后再提交給
Etcd存儲。
2.kube-controller-manager
處理集群中常規后臺任務,一個資源對應一個控制器,而ControllerManager
就是負責管理這些控制器的。
3.kube-scheduler
根據調度算法為新創建的Pod選擇一個Node節點,可以任意部署,可以部署在
同一個節點上,也可以部署在不同的節點上。
etcd
分布式鍵值存儲系統。 用于保存集群狀態數據,比如Pod、 Service等對象信息。

         Node組件

   1.kubelet

kubelet是Master在Node節點上的Agent,管理本機運行容器的生命周期,比如創
建容器、 Pod掛載數據卷、下載secret、獲取容器和節點狀態等工作。 kubelet將每
個Pod轉換成一組容器。
2.kube-proxy
在Node節點上實現Pod網絡代理,維護網絡規則和四層負載均衡工作。
3.docker或rocket
容器引擎,運行容器。

4.Kubernetes核心概念
Pod
? 最小部署單元
? 一組容器的集合
? 一個Pod中的容器共享網絡命名空間
? Pod是短暫的
Controllers
? ReplicaSet : 確保預期的Pod副本數量
? Deployment : 無狀態應用部署
? StatefulSet : 有狀態應用部署
? DaemonSet : 確保所有Node運行同一個Pod
? Job : 一次性任務
? Cronjob : 定時任務
更高級層次對象,部署和管理Pod
Service
? 防止Pod失聯
? 定義一組Pod的訪問策略Kubernetes核心概念
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

kubectl命令行管理工具

Kubernetes基礎-1

業務發布常用命令如下:
1、創建
kubectl create deployment nginx --image=nginx:1.14
kubectl get deploy,pods
2、發布
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集群中部署應用,除了在命令行快速部署外,一般都是采用yaml文件進行部署,

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

故城县| 台北市| 石阡县| 青铜峡市| 普兰店市| 新乡县| 盈江县| 崇州市| 靖边县| 台山市| 平南县| 西充县| 鲜城| 武功县| 新宁县| 龙江县| 溧水县| 日喀则市| 宁陵县| 且末县| 内乡县| 兴海县| 新田县| 通化市| 山阴县| 辉县市| 禹州市| 林州市| 什邡市| 乐东| 环江| 英山县| 兴仁县| 开封市| 石城县| 赣州市| 秦安县| 全南县| 柳州市| 饶河县| 察哈|