在 Ubuntu 16.04 上玩 Minikube
就像玩 OpenStack 在本機有 DevStack ,如果要玩 Kubernetes 在本機有 Minikube (每次拼 Kubernetes 都怕拼錯,還是叫 k8s 吧),這篇就來總結一下本機簡單跑 Minikube 起來的筆記
Concept
先來看一下可愛的架構圖
- 我有一些輕量的 Linux 容器組成微服務,要透過 k8s 管理
- Pod 是 k8s 中能夠被創建、調度和管理的最小單元,有自己獨立的 ip
- 一個 Pod 由一個或多個容器構成,這些容器共享 Pod 的所有資源
- K8S 分成 Master 節點和 Node 節點,可以想成實際存放 Pod 的虛擬或實體機器
- 如果 Pod 內的服務要暴露出來,就要使用 Service ,由 Service 內的 LoadBalancer 和 NodePort 提供公網 ip 和 使用的 port
安裝
我們要在本機上用 Minikube 安裝 k8s cluster ,首先要先安裝虛擬機的 hypervisor 、kubectl ,再來才是 Minikube 本身
Minikube 的 github上有教怎麼安裝,不過我習慣從官網的教程上獲得完整的資訊
安裝 hypervisor
hypervisor 有幾種選擇,我比較熟悉因為免費的是 VirtulaBox 和 KVM,而挑選的原則也很簡單,個人用 VirtualBox 、 Server 用 KVM
之前玩 Vagrant 就已經裝過 VirtualBox 了,沒裝過的同學可以參考在 Linux 上的安裝教學
補充一下快速查看 Ubuntu 版本的指令
然後 verify 我們裝過 VirtualBox
安裝 kubectl
最快的方式
或是從最新的 stable 拉
verify kubectl
(是 version
不是 --version
啊…)
安裝 minikube
|
|
Hello MiniKube
然後我們依照 Running Kubernetes Locally via Minikube 來跑我們第一個 Minikube hello world
|
|
cluster 跑起來之後用 kubectl 控制
deployment 根據官方網站的定義為:
A Deployment controller provides declarative updates for Pods and ReplicaSets.
詳細 deployment 的設定怎麼寫,往後我再開一篇寫,總之上完 deployment 之後 expose 出來給外部使用
verify Pod 和 Node 的狀況
然後我們可以從本機 curl 一下暴露出來的服務
這時候瀏覽器訪問 client_address
給的 172.17.0.1
可以看到 apache 的預設頁面
也可以下 $ minikube dashboard
開啟瀏覽器分頁由 web console 看到 cluster 的情況
要結束的時候就壓
覆蓋一張未完待續卡,結束這回合