Helm 是一个 Kubernetes 应用程序包管理器,它允许定义、安装和升级 Kubernetes 应用程序。
它使用 Chart 文件来描述 Kubernetes 资源对象的集合。
kubectl 是 Kubernetes 的命令行工具
,用于与 Kubernetes 集群进行交互,可以用来操作和管理 Kubernetes 资源对象。
一、部署和管理应用:
- 安装资源对象:
- Helm:
helm install <release-name> <chart>
- kubectl:
kubectl create -f <resource-file>
- Helm:
- 更新资源对象:
- Helm:
helm upgrade <release-name> <chart>
- kubectl:
kubectl apply -f <updated-resource-file>
- Helm:
- 删除资源对象:
- Helm:
helm uninstall <release-name>
- kubectl:
kubectl delete -f <resource-file>
- Helm:
- 列出已安装的资源对象:
- Helm:
helm list
- kubectl:
kubectl get <resource>
- Helm:
- 获取资源对象的详细信息:
- Helm:
helm status <release-name>
- kubectl:
kubectl describe <resource> <resource-name>
- Helm:
- 获取 Pod 的日志:
- Helm:
helm logs <pod-name>
- kubectl:
kubectl logs <pod-name>
- Helm:
- 在容器内执行命令:
- Helm:
N/A
- kubectl:
kubectl exec -it <pod-name> -- <command>
- Helm:
- 管理回滚:
- Helm:
helm rollback <release-name> <revision-number>
- kubectl:
kubectl rollout undo <resource> <resource-name>
- Helm:
二、配置和管理:
- 创建 Helm Chart:
- Helm:
helm create <chart-name>
- kubectl:
N/A
- 检查 Chart 文件:
- Helm:
helm lint <chart>
- kubectl:
N/A
- 打包 Chart 文件:
- Helm:
helm package <chart>
- kubectl:
N/A
- 添加 Helm Chart 仓库:
- Helm:
helm repo add <repository-name> <repository-url>
- kubectl:
N/A
- 更新 Helm Chart 仓库:
- Helm:
helm repo update
- kubectl:
N/A
三、服务发现和路由:
- 创建 Service 对象:
- Helm:
helm install --set service.enabled=true <release-name> <chart>
- kubectl:
kubectl expose <resource> <resource-name>
- 获取可用的 Services:
- Helm:
N/A
- kubectl:
kubectl get services
四、存储和持久化:
- 启用持久化:
- Helm:
helm install --set persistence.enabled=true <release-name> <chart>
- kubectl:
kubectl apply -f <persistent-volume.yaml>
- 创建持久卷声明:
- Helm:
helm install --set persistence.enabled=true <release-name> <chart>
- kubectl:
kubectl apply -f <persistent-volume-claim.yaml>
五、监控和日志:
- 资源探测/监控:
- Helm:
helm install --set prometheus.enabled=true <release-name> <chart>
- prometheus.io/http_probe: “true”prometheus.io/http-probe-port: ‘8080’prometheus.io/http-probe-path: ‘/healthz’
- kubectl:
N/A
- 显示资源使用情况:
- Helm:
N/A
- kubectl:
kubectl top <resource>
六、扩展和自定义:
- 自定义 Helm Chart:
- Helm:
helm create <chart-name>
- kubectl:
N/A
- 应用自定义配置文件:
- Helm:
helm install --set <parameter>=<value> <release-name> <chart>
- kubectl:
kubectl apply -f <custom-config.yaml>
七、安全和身份验证:
- 启用 RBAC:
- Helm:
helm install --set rbac.enabled=true <release-name> <chart>
- kubectl:
kubectl create -f <rbac-config.yaml>
- 创建身份验证密钥:
- Helm:
N/A
- kubectl:
kubectl create secret <resource>
八、网络和服务发现:
- 创建 Ingress 对象:
- Helm:
helm install --set ingress.enabled=true <release-name> <chart>
- kubectl:
kubectl expose <resource> <resource-name>
- 获取公开的 Services:
- Helm:
N/A
- kubectl:
kubectl get services
九、自动化和持续集成/持续交付:
- 在 CI/CD 中部署应用程序:
- Helm:
helm upgrade --install <release-name> <chart>
- kubectl:
kubectl apply -f <resource-file>
- 在 CI/CD 中应用配置文件:
- Helm:
helm upgrade --install --set configmap.enabled=true <release-name> <chart>
- kubectl:
kubectl apply -f <resource-file>
十、故障排查和调试:
- 运行应用的测试:
- Helm:
helm upgrade --install --dry-run --debug <release-name> <chart>
- kubectl:
kubectl create deployment my-app --image=my-image --dry-run -o yaml
- 检查资源对象状态和事件:
- Helm:
helm status <release-name>
- kubectl:
kubectl describe <resource> <resource-name>
- 在容器内执行命令:
- Helm:
N/A
- kubectl:
kubectl exec -it <pod-name> -- <command>
十一、资源限制和调整:
- 设置 CPU 资源请求:
- Helm:
helm install --set resources.requests.cpu=<value> <release-name> <chart>
- kubectl:
kubectl patch deployment my-deployment -p '{"spec": {"template": {"spec": {"containers": [{"name": "my-container", "resources": {"requests": {"cpu":"200m", "memory":"256Mi"}}}]}}}}'
十二、升级和回滚:
- 升级 Helm Chart 版本:
- Helm:
helm upgrade <release-name> <chart>
- kubectl:
kubectl apply -f <updated-resource-file>
- 回滚到先前安装的版本:
- Helm:
helm rollback <release-name> <revision-number>
- kubectl:
kubectl rollout undo <resource> <resource-name>
十三、状态检查和修改:
- 获取应用状态信息:
- Helm:
helm get manifest <release-name>
- kubectl:
kubectl get <resource-name>
- 获取资源对象历史信息:
- Helm:
helm history <release-name>
- kubectl:
kubectl rollout history deployment/<deployment-name>
十四、日程调度和任务管理:
- 安装带有调度功能的 Helm Chart:
- Helm:
helm install --set schedule.enabled=true <release-name> <chart>
- kubectl:
kubectl apply -f <cronjob.yaml>
十五、监控和警报:
- 安装 Prometheus 监控系统:
- Helm:
helm install --set prometheus.enabled=true <release-name> <chart>
- kubectl:
N/A
- 显示资源使用情况:
- Helm:
N/A
- kubectl:
kubectl top <resource>
十六、中间件配置安装:
- 安装 Jenkins CI/CD 工具:
- Helm:
helm install <release-name> jenkins/jenkins --set adminUser=<admin-username>,adminPassword=<admin-password>
- kubectl:
kubectl apply -f <deployment.yaml> <service.yaml>
十七、配置管理:
- 启用 ConfigMap/Secrets:
- Helm:
helm install --set configMap.enabled=true <release-name> <chart>
- Helm:
helm install --set secrets.enabled=true <release-name> <chart>
- kubectl:
kubectl create configmap <configmap-name>
- kubectl:
kubectl create secret <secret-name>
总结:
具体的命令可能因版本和配置而有所不同,大家可以根据实际环境和需求进行适当调整。
这些只是一些日常工作中常见的操作示例,并不代表所有可用的命令。
如果想获取更多操作命令,大家可以通过查阅 Helm 和 kubectl 的官方文档来了解更多命令和用法。
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END