開始使用 Minikube
一、概述
Kubernetes 是一個流行的開源平台,用於管理容器化的工作負載和服務。它提供了一種管理和編排容器化應用程序的方法,根據需要擴展和縮減它們,並確保它們可靠、安全地運行。
Minikube 是一種工具,使我們能夠在我們的機器上運行本地單節點 Kubernetes 集群,非常適合測試和開發目的。在本教程中,我們將介紹在本地計算機上安裝和使用 Minikube 的步驟。
2.先決條件
在我們開始之前,我們應該確保我們有以下內容:
- 運行 Linux、macOS 或 Windows 的計算機。
- 我們的機器上安裝了虛擬機管理程序,例如 VirtualBox 或 KVM。如果我們使用的是 Windows,我們可以改用 Hyper-V。
- 一個 shell 環境,例如 Bash 或 PowerShell。
- curl 安裝在我們的機器上。
3.安裝Minikube
第一步是在我們的機器上安裝 Minikube。我們可以按照 Minikube 網站上提供的說明進行操作: https ://minikube.sigs.k8s.io/docs/start/
或者,我們可以使用以下命令安裝最新版本的 Minikube:
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
此命令適用於 Linux。如果我們使用的是 macOS 或 Windows,則需要為我們的平台下載適當的二進製文件。
一旦我們安裝了 Minikube,我們可以通過運行以下命令來驗證它是否安裝正確:
$ minikube version
minikube version: v1.18.1
此命令輸出 Minikube 二進製文件的版本號。
4.啟動一個Minikube集群
下一步是啟動 Minikube 集群。我們可以通過運行以下命令來完成此操作:
$ minikube start
此命令將在我們的本地計算機上啟動虛擬機並將其配置為運行單節點 Kubernetes 集群。
我們第一次運行此命令時,它會為虛擬機下載必要的 ISO 映像,這可能需要幾分鐘時間。虛擬機運行後,我們可以通過運行以下命令來檢查集群的狀態:
$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
timeToStop: Nonexistent
此輸出表明 Minikube 控制平面正在運行,並且kubelet
和 API 服務器也在運行。 kubeconfig
已配置,這意味著我們可以使用kubectl
命令與集群進行交互。此外,輸出還顯示 Minikube 主機的狀態。
5. 與 Minikube 集群交互
集群啟動並運行後,我們可以使用kubectl
命令行工具與其進行交互。 kubectl
是與 Kubernetes 集群交互的主要 CLI 工具,使我們能夠部署應用程序、管理節點和執行其他操作。
要將kubectl
與 Minikube 一起使用,我們必須將上下文設置為 Minikube 集群。我們可以通過運行以下命令來完成此操作:
$ kubectl config use-context minikube
此命令告訴kubectl
使用 Minikube 集群的配置。
我們現在可以運行kubectl
命令來與 Minikube 集群交互。例如,我們可以運行以下命令來獲取有關集群中節點的信息:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 250d v1.20.2
此命令顯示集群中的節點列表及其狀態、角色、年齡和 Kubernetes 版本。
6. 部署應用
要將應用程序部署到 Minikube 集群,我們需要創建一個 Kubernetes 部署對象。部署對像管理應用程序的一組副本,並確保維持所需的狀態。
對於此示例,讓我們創建一個運行NGINX
Web 服務器的簡單部署對象。為此,我們首先創建一個名為nginx-deployment.yaml
的文件,其中包含以下內容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
此YAML
文件定義了一個部署對象,該對象具有運行NGINX
容器的單個副本。它為HTTP
流量公開端口 80。
然後,為了創建部署,我們運行以下命令:
$ kubectl apply -f nginx-deployment.yaml
deployment.apps/nginx-deployment created
此命令在 Minikube 集群中創建部署對象。
要訪問 NGINX Web 服務器,我們需要將其公開為 Kubernetes 服務。 service
是一種抽象,它將一組 pod 公開為網絡服務。讓我們創建一個名為nginx-service.yaml
的文件,其中包含以下內容:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
selector:
app: nginx
ports:
- name: http
port: 80
targetPort: 80
這個 YAML 文件定義了一個服務對象,它在虛擬機上隨機分配的端口上公開 NGINX 部署。
要創建服務,我們運行以下命令:
$ kubectl apply -f nginx-service.yaml
service/nginx-service created
我們現在可以通過獲取虛擬機的 IP 地址和服務的端口號來訪問 NGINX Web 服務器:
$ minikube service nginx-service --url
http://192.168.64.2:31637
這應該輸出一個 URL,我們可以使用它來訪問 NGINX Web 服務器。
要在 Minikube 中使用本地構建的 Docker 鏡像,我們可以簡單地使用 Minikube Docker 守護進程的 IP 地址標記鏡像,並使用docker tag
和docker push
命令將其推送到 Minikube Docker 註冊表。
七、結論
在本文中,我們介紹了安裝和使用 Minikube 在我們的機器上運行本地 Kubernetes 集群的步驟。我們還演示瞭如何將應用程序部署到集群並使用 Kubernetes 服務訪問它。
Minikube 是用於測試和開發目的的出色工具,它使我們能夠快速輕鬆地啟動和運行 Kubernetes。