iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

SDN/NFV 網路虛擬化調度平台系列 第 5

Day 5 - Kubernetes kubelet, kubeadm, kubectl 介紹

前言

前面安裝好了kubelet, kubeadm, kubectl,再來就是介紹它們之間的用途為何

kubelet

pod 管理

在 kubernetes 的設計中,最基本的管理單位是 pod,而不是 container。 pod 是 kubernetes 在容器上的一層封裝,由一組運行在同一主機的一個或者多個容器組成。如果把容器比喻成傳統機器上的一個進程(它可以執行任務,對外提供某種功能),那麼 pod 可以類比為傳統的主機:它包含了多個容器,為它們提供共享的一些資源。

之所以費功夫提供這一層封裝,主要是因為容器推薦的用法是裡面只運行一個進程,而一般情況下某個應用都由多個元件構成的。

pod 中所有的容器最大的特性也是最大的好處就是共享了很多資源,比如網路空間。 pod 下所有容器共享網路和端口空間,也就是它們之間可以通過 localhost 訪問和通訊,對外的通信方式也是一樣的,省去了很多容器通訊的麻煩。

除了網路之外,定義在 pod 裡的 volume 也可以 mount 到多個容器裡,以實現共享的目的。

最後,定義在 pod 的資源限制(比如 CPU 和 Memory) 也是所有容器共享的。

kubeadm

我們都知道集群這個東西從來就不是簡單的事。在kubeadm出現之前我們搭建一個k8s的集群是很費勁的, 需要安裝各種服務,配置各種參數。隨著docker1.12發布的swarm mode打破了集群搭建困難這個事。它能使用一條命令就創建一個集群出來, 極大的降低了swarm mode的使用門檻, 即便你只是剛剛入門沒多久的docker 使用者, 也可能很容易的搭建出一個swarm 集群玩玩。基於這種簡化操作,降低使用門檻的目的。 google也隨之推出了kubeadm這個工具, 同樣提供一個kubeadm init 命令初始化集群, kubeadm join 擴充節點。使得我們可以很方便的搭建出我們自己的集群。同時你仍然可以根據你自己的需要安裝各種add-on來擴充集群功能。這些add-on全部是容器化部署,你可以在k8s的github上找到。使用簡單方便。

kubectl

kubectl 是一支用來與 k8s 叢集溝通的二進位 (binary) 工具。我們可以運用 kubectl 來

  • 取得 k8s 各種不同資源資訊 (get: pod, service, ingress, ...)
  • 取得 k8s 各種不同資源的詳細內容 (describe: pod, service, ingress, ...)
  • 配置 k8s 運行資源 (create, apply, rollout, ...)
  • 刪除 k8s 運行資源 (delete)
  • 取得 log 檔案 (logs)

參考連結


上一篇
Day 4 - Kubernetes 安裝2
下一篇
Day 6 - Kubernetes Multus CNI 介紹
系列文
SDN/NFV 網路虛擬化調度平台30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言