iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0

前言

在使用 Istio 前, 需先準備 Kubernetes 環境,本篇會教你如何使用 Minikube, 讓你能在任何環境都能輕鬆架起 Kubernetes。

Kubernetes 環境準備

建置 Kubernetes 部屬環境時,主要是使用 Kubeadm 工具,但此工具設定複雜,對新手來說不易使用,本篇介紹的 Minikube 能夠在 macOS、Linux 及 Windows 快速建立起單節點的 Kubernetes Cluster ,接著就來實際安裝看看吧!

Kubernetes 環境安裝

  1. 進入 minikube start 網站

  2. 在 Installation 頁面,根據自身環境點選按鈕

https://ithelp.ithome.com.tw/upload/images/20220914/20139235pgWgAc456C.png

  1. 開啟 Terminal ,複製指令並貼到 Terminal 執行
# 輸入從 minikube start 網站複製的指令
  1. 確認 Minikube 是否成功安裝
minikube version

(輸出結果)

minikube version: v1.26.1
commit: 62e108c3dfdec8029a890ad6d8ef96b6461426dc

若無成功,有可能是環境變數沒有匯入,可嘗試重新啟動 Terminal

使用 Minikube 之前,還需準備 Container 或 VM 的 Manager,如 Docker、Hyper-V、VirtualBox 等等,本篇會以 Docker 作為 Manager

  1. 進入 Install Docker Engine 網站,根據自身環境選擇安裝文件並完成安裝

https://ithelp.ithome.com.tw/upload/images/20220914/201392355HZv0EjXUc.png

Mac 與 Windows 選擇安裝 Docker Desktop,Linux 可選擇 Desktop 或是 Server 版本

  1. (安裝 Desktop 版本時) 開啟 Docker Desktop ,點選右上角 設定 -> Resources,調整好資源後點選 Apply & Restart

https://ithelp.ithome.com.tw/upload/images/20220914/2013923578CVeZPb3J.jpg

資源設定至少需 2 CPUs + 4 GB Memory

接著需安裝 kubectl (Kubernetes CLI 工具),可以先在 Terminal 下指令確認,若無此工具請到 Kubernetes tools 網站,根據教學安裝

  1. 確認 Kubectl 是否成功安裝
kubectl version --short

(輸出結果)

Client Version: v1.24.2
Kustomize Version: v4.5.4
Server Version: v1.24.3

Docker 與 Kubectl 都準備完成後,就可以使用 Minikube 來建置 Kubernetes Cluster

  1. 使用 Minikube 建立 Kubernetes Cluster
minikube start --driver=docker --memory 4096
  • --driver=docker: 使用 Dokcer 作為 Manager
  • --memory 4096 配置 4GB RAM

https://ithelp.ithome.com.tw/upload/images/20220914/20139235rWrE2J8M3c.jpg

建置完成後,Minikube 會自動配置 Kubectl

  1. 確認 kubectl 是否能與 Cluster 溝通
kubectl cluster-info

(輸出結果)

Kubernetes control plane is running at https://127.0.0.1:50031
CoreDNS is running at https://127.0.0.1:50031/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

測試 Kubernetes 環境

創建好 Kubernetes Cluster 後,測試基本功能是否運作正常。

  1. 使用 kubectl run <name> 指令建立 Pod
kubectl run nginx --image=nginx --restart=Never
  • --image=nginx: 使用 Nginx 作為 Image
  • --restart=Never 不會自動重啟
  1. 使用 kubectl get pods 查看 Pods
kubectl get pods

(輸出結果)

# 等待到 Pod 建置完成
NAME    READY   STATUS              RESTARTS   AGE
nginx   0/1     ContainerCreating   0          4s
# Pod 建置完成
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          64s
  1. Pod 建置完成後 , 使用 kubectl port-forward <name> <server port>:<container port> 指令與 Pod 互動
kubectl port-forward nginx 8080:80
  • 8080:80: 將主機 Port 8080 的流量轉移到 Container 的 Port 80
  1. 開啟瀏覽器查看是否成功
# 在瀏覽器輸入
127.0.0.1:8080

https://ithelp.ithome.com.tw/upload/images/20220914/20139235v9IkGwztRn.png

  1. 使用 kubectl delete pods <name> 刪除 Pod
kubectl delete pod nginx

(輸出結果)

pod "nginx" deleted

總結

本篇我們使用 Minikube 快速建立起實驗環境,下一篇就會介紹如何將 Istio 安裝到 Kubernetes。


上一篇
Day04 - Service Mesh 中的領航者,Istio 介紹
下一篇
Day06 - 在 Kubernetes 輕鬆建立 Istio 環境
系列文
學會 Kubernetes 然後呢?由 Istio 進入 DevOps 偉大航路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
XZK
iT邦新手 4 級 ‧ 2022-10-20 14:00:58

其實 minikube 也有內建 kubectl 不需要額外安裝,語法 minikube kubectl -- <command>
另外也建議將 minikube 做 shell completion: source <(minikube completion bash)
kubectl 的則是 source <(minikube kubectl -- completion bash)

我要留言

立即登入留言