Minikube 是一個在本地環境中運行 Kubernetes 叢集的工具。通過 Minikube,您可以在本地快速設定一個 Kubernetes 環境,並進行應用程式開發和測試。在本教學中,我們將重點介紹如何在 Minikube 中使用 Ingress,以實現應用程式的網路訪問。
首先,我們需要創建一個簡單的應用程式服務和部署。以下是一個示例的 deployment.yaml 和 service.yaml 配置檔案:
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
運行以下命令以創建部署和服務:
$ kubectl apply -f deployment.yaml
$ kubectl apply -f service.yaml
預設情況下,Minikube 中未啟用 Ingress 控制器。您需要啟用它,以便在 Minikube 中使用 Ingress。運行以下命令
minikube addons enable ingress
現在,我們將創建一個 Ingress 規則,將流量導向到剛剛創建的應用程式服務。以下是一個 ingress.yaml 的示例配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules:
- host: nginx.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-service
port:
number: 80
在這個範例中,我們將流量導向到 nginx-service 服務,並設定了域名為 nginx.example.com。
運行以下命令以創建 Ingress 規則:
$ kubectl apply -f ingress.yaml
在本地測試中,為了模擬域名解析,您需要修改本地 Hosts 文件,將 nginx.example.com 對應到 Minikube IP 地址。在命令行中運行以下命令:
$ echo "$(minikube ip) nginx.example.com" | sudo tee -a /etc/hosts
您可以在瀏覽器中訪問 http://nginx.example.com ,這會將流量導向到剛剛創建的 Nginx 應用程式。
透過這個教學,您學會了如何在 Minikube 中使用 Ingress 來實現應用程式的網路訪問。Ingress 提供了一種有效的方式,讓您可以集中管理應用程式的網路流量,同時為每個應用程式創建統一的入口點。
請注意,此教學僅限於本地測試。在實際情況中,您需要設定 DNS 記錄,以便實現域名解析和訪問。