在Kubernetes(K8s)安装完成后,进行测试以确保集群正常运行是非常重要的。以下是一些基本的测试步骤:
首先,确保所有节点都处于Ready
状态。
kubectl get nodes
输出应该显示所有节点的状态为Ready
。
创建一个简单的Deployment来测试Pod的部署和扩展功能。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
保存为nginx-deployment.yaml
,然后应用:
kubectl apply -f nginx-deployment.yaml
检查Deployment的状态:
kubectl get deployments
确保nginx-deployment
的状态为Running
,并且有3个副本。
创建一个Service来暴露Nginx应用。
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
保存为nginx-service.yaml
,然后应用:
kubectl apply -f nginx-service.yaml
检查Service的状态:
kubectl get services
找到nginx-service
的外部IP地址(如果是云环境),然后访问该IP地址,应该能看到Nginx的默认页面。
检查Pod的日志以确保应用正常运行。
kubectl logs <pod-name>
替换<pod-name>
为实际的Pod名称。
查看Pod的详细信息,包括事件和条件。
kubectl describe pod <pod-name>
编辑Deployment的配置并观察Pod的变化。
kubectl edit deployment nginx-deployment
修改一些配置(例如,增加副本数),然后保存并退出。观察Pod的状态变化。
如果需要回滚到之前的版本:
kubectl rollout undo deployment/nginx-deployment
使用Horizontal Pod Autoscaler(HPA)来自动调整Pod的数量。
首先,确保Metrics Server已安装并运行:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
然后,创建一个HPA:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: nginx-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx-deployment
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
保存为nginx-hpa.yaml
,然后应用:
kubectl apply -f nginx-hpa.yaml
检查HPA的状态:
kubectl get hpa
通过增加负载来测试HPA是否正常工作。
如果配置了网络策略,确保它们按预期工作。
kubectl apply -f network-policy.yaml
检查网络策略的状态:
kubectl get networkpolicy
通过尝试违反策略来测试其有效性。
创建并测试PersistentVolume和PersistentVolumeClaim。
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /mnt/data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
保存为pv-pvc.yaml
,然后应用:
kubectl apply -f pv-pvc.yaml
检查PersistentVolume和PersistentVolumeClaim的状态:
kubectl get pv
kubectl get pvc
挂载PVC到Pod中并测试数据持久性。
确保监控和日志收集工具(如Prometheus、Grafana、ELK Stack等)正常运行并收集数据。
通过这些步骤,你可以全面测试Kubernetes集群的功能和性能。根据具体需求,可能还需要进行更多的测试和配置。