Helm和Kubectl的区别有哪些

Helm 是一个 Kubernetes 应用程序包管理器,它允许定义、安装和升级 Kubernetes 应用程序。

它使用 Chart 文件来描述 Kubernetes 资源对象的集合。

kubectl 是 Kubernetes 的命令行工具

图片[1]-Helm和Kubectl的区别有哪些-不念博客

,用于与 Kubernetes 集群进行交互,可以用来操作和管理 Kubernetes 资源对象。

一、部署和管理应用:

  1. 安装资源对象:
    • Helmhelm install <release-name> <chart>
    • kubectlkubectl create -f <resource-file>
  2. 更新资源对象:
    • Helmhelm upgrade <release-name> <chart>
    • kubectlkubectl apply -f <updated-resource-file>
  3. 删除资源对象:
    • Helmhelm uninstall <release-name>
    • kubectlkubectl delete -f <resource-file>
  4. 列出已安装的资源对象:
    • Helmhelm list
    • kubectlkubectl get <resource>
  5. 获取资源对象的详细信息:
    • Helmhelm status <release-name>
    • kubectlkubectl describe <resource> <resource-name>
  6. 获取 Pod 的日志:
    • Helmhelm logs <pod-name>
    • kubectlkubectl logs <pod-name>
  7. 在容器内执行命令:
    • HelmN/A
    • kubectlkubectl exec -it <pod-name> -- <command>
  8. 管理回滚:
    • Helmhelm rollback <release-name> <revision-number>
    • kubectlkubectl rollout undo <resource> <resource-name>

二、配置和管理:

  1. 创建 Helm Chart:
  • Helmhelm create <chart-name>
  • kubectlN/A
  1. 检查 Chart 文件:
  • Helmhelm lint <chart>
  • kubectlN/A
  1. 打包 Chart 文件:
  • Helmhelm package <chart>
  • kubectlN/A
  1. 添加 Helm Chart 仓库:
  • Helmhelm repo add <repository-name> <repository-url>
  • kubectlN/A
  1. 更新 Helm Chart 仓库:
  • Helmhelm repo update
  • kubectlN/A

三、服务发现和路由:

  1. 创建 Service 对象:
  • Helmhelm install --set service.enabled=true <release-name> <chart>
  • kubectlkubectl expose <resource> <resource-name>
  1. 获取可用的 Services:
  • HelmN/A
  • kubectlkubectl get services

四、存储和持久化:

  1. 启用持久化:
  • Helmhelm install --set persistence.enabled=true <release-name> <chart>
  • kubectlkubectl apply -f <persistent-volume.yaml>
  1. 创建持久卷声明:
  • Helmhelm install --set persistence.enabled=true <release-name> <chart>
  • kubectlkubectl apply -f <persistent-volume-claim.yaml>

五、监控和日志:

  1. 资源探测/监控:
  • Helmhelm 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’
  • kubectlN/A
  1. 显示资源使用情况:
  • HelmN/A
  • kubectlkubectl top <resource>

六、扩展和自定义:

  1. 自定义 Helm Chart:
  • Helmhelm create <chart-name>
  • kubectlN/A
  1. 应用自定义配置文件:
  • Helmhelm install --set <parameter>=<value> <release-name> <chart>
  • kubectlkubectl apply -f <custom-config.yaml>

七、安全和身份验证:

  1. 启用 RBAC:
  • Helmhelm install --set rbac.enabled=true <release-name> <chart>
  • kubectlkubectl create -f <rbac-config.yaml>
  1. 创建身份验证密钥:
  • HelmN/A
  • kubectlkubectl create secret <resource>

八、网络和服务发现:

  1. 创建 Ingress 对象:
  • Helmhelm install --set ingress.enabled=true <release-name> <chart>
  • kubectlkubectl expose <resource> <resource-name>
  1. 获取公开的 Services:
  • HelmN/A
  • kubectlkubectl get services

九、自动化和持续集成/持续交付:

  1. 在 CI/CD 中部署应用程序:
  • Helmhelm upgrade --install <release-name> <chart>
  • kubectlkubectl apply -f <resource-file>
  1. 在 CI/CD 中应用配置文件:
  • Helmhelm upgrade --install --set configmap.enabled=true <release-name> <chart>
  • kubectlkubectl apply -f <resource-file>

十、故障排查和调试:

  1. 运行应用的测试:
  • Helmhelm upgrade --install --dry-run --debug <release-name> <chart>
  • kubectlkubectl create deployment my-app --image=my-image --dry-run -o yaml
  1. 检查资源对象状态和事件:
  • Helmhelm status <release-name>
  • kubectlkubectl describe <resource> <resource-name>
  1. 在容器内执行命令:
  • HelmN/A
  • kubectlkubectl exec -it <pod-name> -- <command>

十一、资源限制和调整:

  1. 设置 CPU 资源请求:
  • Helmhelm install --set resources.requests.cpu=<value> <release-name> <chart>
  • kubectlkubectl patch deployment my-deployment -p '{"spec": {"template": {"spec": {"containers": [{"name": "my-container", "resources": {"requests": {"cpu":"200m", "memory":"256Mi"}}}]}}}}'

十二、升级和回滚:

  1. 升级 Helm Chart 版本:
  • Helmhelm upgrade <release-name> <chart>
  • kubectlkubectl apply -f <updated-resource-file>
  1. 回滚到先前安装的版本:
  • Helmhelm rollback <release-name> <revision-number>
  • kubectlkubectl rollout undo <resource> <resource-name>

十三、状态检查和修改:

  1. 获取应用状态信息:
  • Helmhelm get manifest <release-name>
  • kubectlkubectl get <resource-name>
  1. 获取资源对象历史信息:
  • Helmhelm history <release-name>
  • kubectlkubectl rollout history deployment/<deployment-name>

十四、日程调度和任务管理:

  1. 安装带有调度功能的 Helm Chart:
  • Helmhelm install --set schedule.enabled=true <release-name> <chart>
  • kubectlkubectl apply -f <cronjob.yaml>

十五、监控和警报:

  1. 安装 Prometheus 监控系统:
  • Helmhelm install --set prometheus.enabled=true <release-name> <chart>
  • kubectlN/A
  1. 显示资源使用情况:
  • HelmN/A
  • kubectlkubectl top <resource>

十六、中间件配置安装:

  1. 安装 Jenkins CI/CD 工具:
  • Helmhelm install <release-name> jenkins/jenkins --set adminUser=<admin-username>,adminPassword=<admin-password>
  • kubectlkubectl apply -f <deployment.yaml> <service.yaml>

十七、配置管理:

  1. 启用 ConfigMap/Secrets:
  • Helmhelm install --set configMap.enabled=true <release-name> <chart>
  • Helmhelm install --set secrets.enabled=true <release-name> <chart>
  • kubectlkubectl create configmap <configmap-name>
  • kubectlkubectl create secret <secret-name>

总结:

具体的命令可能因版本和配置而有所不同,大家可以根据实际环境和需求进行适当调整。

这些只是一些日常工作中常见的操作示例,并不代表所有可用的命令。

如果想获取更多操作命令,大家可以通过查阅 Helm 和 kubectl 的官方文档来了解更多命令和用法。

© 版权声明
THE END