kubernetes入门指南(一)
首先得了解一下kubernetes的功能,簡單點說,它提供了一種容器編排技術,給用戶提供了一種基于容器的服務的快速部署、升級、回滾、訪問控制、彈性伸縮等多種編排功能,使得用戶在開發、測試、生產環境里面能夠達到敏捷開發,快速、可靠交付的目的。
其次,得了解一下kubernetes的角色和組件分布:
?
在kubernetes中,集群應該是第一個需要理解的概念,這個集群可以統稱為由一些具有共同目的并最后對外提供服務的節點聚合。
所以對于kubernetes而言,集群內部的節點角色的劃分,成為理解kubernetes的第一步,顧名思義,master為主控角色,node為從屬角色。按照一般集群內部的概念,主控角色負責對外訪問功能,且負責內部的業務調度和負載均衡,從屬節點則需要向主控節點匯報自己的狀態和資源狀況,以及最終承載業務。
類似的,kubernetes的確提供了上述主從角色的基本功能,并確定了具體的組件來分治具體的功能:
在master上,etcd負載持久化存儲,用來存儲kubernetes內部的各種類型的資源
kube-apiserver負責http訪問和命令行輸入
kube-controller負責內部資源的調度分配
kube-scheduler負責業務的調度
在node上,docker負責承載具體的業務容器,包括網絡、鏡像、卷等處理機制
kube-let則負責節點的注冊和匯報節點狀態,最重要的是包括了業務的部署實施
kube-proxy則負責業務啟動后的訪問控制和負載均衡
目前這些組件除了etcd能單獨對外提供服務之外,其他組件均需要協同運作才能滿足正常工作需求
在測試環境中,一個單機版的kubernetes安裝完畢之后應該呈現一下的特點:
1 [root@cloud ~]# kubectl describe node 127.0.0.1 2 Name: 127.0.0.1 3 Role: 4 Labels: beta.kubernetes.io/arch=amd64 5 beta.kubernetes.io/os=linux 6 kubernetes.io/hostname=127.0.0.1 7 Taints: <none> 8 CreationTimestamp: Tue, 05 Jun 2018 15:13:08 +0800 9 Phase: 10 Conditions: 11 Type Status LastHeartbeatTime LastTransitionTime Reason Message 12 ---- ------ ----------------- ------------------ ------ ------- 13 OutOfDisk False Tue, 05 Jun 2018 15:56:04 +0800 Tue, 05 Jun 2018 15:13:08 +0800 KubeletHasSufficientDisk kubelet has sufficient disk space available 14 MemoryPressure False Tue, 05 Jun 2018 15:56:04 +0800 Tue, 05 Jun 2018 15:13:08 +0800 KubeletHasSufficientMemory kubelet has sufficient memory available 15 DiskPressure False Tue, 05 Jun 2018 15:56:04 +0800 Tue, 05 Jun 2018 15:13:08 +0800 KubeletHasNoDiskPressure kubelet has no disk pressure 16 Ready True Tue, 05 Jun 2018 15:56:04 +0800 Tue, 05 Jun 2018 15:13:08 +0800 KubeletReady kubelet is posting ready status 17 Addresses: 127.0.0.1,127.0.0.1,127.0.0.1 18 Capacity: 19 alpha.kubernetes.io/nvidia-gpu: 0 20 cpu: 1 21 memory: 1016396Ki 22 pods: 110 23 Allocatable: 24 alpha.kubernetes.io/nvidia-gpu: 0 25 cpu: 1 26 memory: 1016396Ki 27 pods: 110 28 System Info: 29 Machine ID: 36dc953195bb4389870d2591ff6bfea5 30 System UUID: 91592E52-13E1-4613-B9BD-CCFA22D12FEF 31 Boot ID: 60b2d295-a3cb-4f96-98ea-ec56913a0338 32 Kernel Version: 3.10.0-514.26.2.el7.x86_64 33 OS Image: CentOS Linux 7 (Core) 34 Operating System: linux 35 Architecture: amd64 36 Container Runtime Version: docker://1.13.1 37 Kubelet Version: v1.5.2 38 Kube-Proxy Version: v1.5.2 39 ExternalID: 127.0.0.1 40 Non-terminated Pods: (0 in total) 41 Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits 42 --------- ---- ------------ ---------- --------------- ------------- 43 Allocated resources: 44 (Total limits may be over 100 percent, i.e., overcommitted. 45 CPU Requests CPU Limits Memory Requests Memory Limits 46 ------------ ---------- --------------- ------------- 47 0 (0%) 0 (0%) 0 (0%) 0 (0%) 48 Events: 49 FirstSeen LastSeen Count From SubObjectPath Type Reason Message 50 --------- -------- ----- ---- ------------- -------- ------ ------- 51 42m 42m 1 {kubelet 127.0.0.1} Normal Starting Starting kubelet. 52 42m 42m 1 {kubelet 127.0.0.1} Warning ImageGCFailed unable to find data for container / 53 42m 42m 2 {kubelet 127.0.0.1} Normal NodeHasSufficientDisk Node 127.0.0.1 status is now: NodeHasSufficientDisk 54 42m 42m 2 {kubelet 127.0.0.1} Normal NodeHasSufficientMemory Node 127.0.0.1 status is now: NodeHasSufficientMemory 55 42m 42m 2 {kubelet 127.0.0.1} Normal NodeHasNoDiskPressure Node 127.0.0.1 status is now: NodeHasNoDiskPressure里面包含了一下node相關的具體系統信息、資源信息、和events。
轉載于:https://www.cnblogs.com/diagnose/p/9140247.html
總結
以上是生活随笔為你收集整理的kubernetes入门指南(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode(30):与所有单词相关
- 下一篇: 动态代理以及对应Spring中AOP源码