Windows环境下Minikube使用指南
1. 环境准备
- minikube
2. 启动Minikube
3. 使用Job方式运行BusyBox
3.1 创建Job配置文件
创建名为busybox-job.yaml的文件:
yaml
apiVersion: batch/v1
kind: Job
metadata:
name: busybox-job
labels:
app: busybox
spec:
template:
metadata:
labels:
app: busybox
spec:
containers:
- name: busybox
image: busybox
command: ['sh', '-c', 'echo "Hello from BusyBox Job!"; date; echo "Job completed successfully"']
restartPolicy: Never
backoffLimit: 4
3.2 部署Job
powershell
# 创建Job
kubectl apply -f busybox-job.yaml
# 查看Job状态
kubectl get jobs
kubectl get pods -l app=busybox
# 查看Job日志
kubectl logs -l app=busybox
3.3 验证Job执行
powershell
# 检查Job是否成功完成
kubectl describe job busybox-job
# 查看Pod状态(应该显示Completed)
kubectl get pods -l app=busybox
4. 使用Service方式运行Nginx
4.1 创建Deployment和Service
创建名为nginx-deployment.yaml的文件:
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
resources:
limits:
memory: "128Mi"
cpu: "500m"
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
type: NodePort
4.2 部署Nginx应用
powershell
# 创建Deployment和Service
kubectl apply -f nginx-deployment.yaml
# 查看Deployment状态
kubectl get deployments
kubectl get pods -l app=nginx
# 查看Service信息
kubectl get services
kubectl describe service nginx-service
4.3 访问Nginx服务
powershell
# 获取Minikube IP
$minikubeIP = minikube ip
Write-Host "Minikube IP: $minikubeIP"
# 测试访问Nginx
Invoke-WebRequest "http://$minikubeIP:30080"
5. 验证和监控
5.1 查看所有资源
powershell
# 查看所有Pods
kubectl get pods --all-namespaces
# 查看所有Services
kubectl get services --all-namespaces
# 查看所有Deployments
kubectl get deployments --all-namespaces
5.2 实时监控
powershell
# 监控Pod状态变化
kubectl get pods -w
# 查看节点资源使用
kubectl top nodes
kubectl top pods
6. 故障排除
6.1 常见问题解决
powershell
# 重启Minikube
minikube delete
minikube start --driver=docker
# 查看Minikube日志
minikube logs
# 检查Docker状态
docker info
6.2 资源清理
powershell
# 删除Job
kubectl delete job busybox-job
# 删除Deployment和Service
kubectl delete deployment nginx-deployment
kubectl delete service nginx-service
# 停止Minikube
minikube stop
# 删除Minikube集群
minikube delete
7. 最佳实践
7.1 配置建议
- 为Job设置合理的
backoffLimit - 为Deployment设置适当的副本数
- 合理配置资源限制
- 使用标签(label)进行资源组织
7.2 安全注意事项
- 避免在生产环境中使用NodePort类型Service
- 为容器设置资源限制防止资源耗尽
- 定期更新镜像版本
8. 扩展学习
8.1 相关命令
powershell
# 查看Minikube支持的驱动
minikube drivers
# 查看可用的Kubernetes版本
minikube get-k8s-versions
# 启动Dashboard
minikube dashboard
8.2 进阶配置
- 配置Ingress控制器
- 设置持久化存储
- 配置ConfigMap和Secret
- 实现自动伸缩