在CentOS上管理Kubernetes(k8s)Pod的技巧有很多,以下是一些常用的技巧:
查看Pod列表
kubectl get pods
查看特定命名空间的Pod
kubectl get pods --namespace=<namespace>
查看Pod详细信息
kubectl describe pod <pod-name>
删除Pod
kubectl delete pod <pod-name>
根据标签删除Pod
kubectl delete pods --selector=<label-key>=<label-value>
根据标签选择Pod并执行命令
kubectl exec -it <pod-name> -- /bin/sh
滚动更新 使用Deployment或StatefulSet进行滚动更新,确保服务不中断。
kubectl set image deployment/<deployment-name> <container-name>=<new-image>:<tag>
回滚更新 如果新版本有问题,可以回滚到之前的版本。
kubectl rollout undo deployment/<deployment-name>
暂停和恢复滚动更新 在需要时可以暂停更新,完成后恢复。
kubectl rollout pause deployment/<deployment-name>
kubectl rollout resume deployment/<deployment-name>
设置资源请求和限制 在Pod定义中设置CPU和内存的请求与限制,以确保资源合理分配。
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
查看Pod资源使用情况
kubectl top pods
查看Pod的网络策略
kubectl get networkpolicies
创建网络策略 定义哪些Pod可以相互通信。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-same-namespace
spec:
podSelector:
matchLabels:
app: my-app
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
app: my-other-app
egress:
- to:
- podSelector:
matchLabels:
app: my-database
查看Pod日志
kubectl logs <pod-name>
跟随Pod日志 实时查看Pod的最新日志。
kubectl logs -f <pod-name>
进入Pod的shell 进入Pod内部进行调试。
kubectl exec -it <pod-name> -- /bin/sh
备份Pod数据
使用kubectl cp命令将Pod的数据复制到本地。
kubectl cp <pod-name>:<container-path> <local-path>
恢复Pod数据 将本地数据复制回Pod。
kubectl cp <local-path> <pod-name>:<container-path>
使用Jenkins等CI/CD工具自动化部署 配置Jenkins管道,实现代码提交后自动构建、测试和部署到Kubernetes集群。
使用Helm进行应用管理 Helm是Kubernetes的包管理工具,可以方便地部署、升级和管理应用。
通过掌握这些技巧,你可以更高效地管理和维护CentOS上的Kubernetes Pod。