Kubernetes(K8S) helm 安装

打印 上一主题 下一主题

主题 822|帖子 822|积分 2466

Helm 是一个 Kubernetes 的包管理工具, 就像 Linux 下的包管理器, 如 yum/apt 等, 可以很方便的将之前打包好的 yaml 文件部署到 kubernetes 上。
Helm 有 3 个重要概念:

  • helm: 一个命令行客户端工具, 主要用于 Kubernetes 应用 chart 的创建、 打包、 发布和管理。
  • Chart: 应用描述, 一系列用于描述 k8s 资源相关文件的集合。
  • Release: 基于 Chart 的部署实体, 一个 chart 被 Helm 运行后将会生成对应的一个release; 将在 k8s 中创建出真实运行的资源对象。
在部署微服务项目时,可能有几十个服务,每个服务都有一套 yaml 文件,需要维护大量 yaml 文件,版本管理特别不方便
使用 helm 可以解决下列问题:

  • 可以把微服务中的几十个 yaml 作为一个整体管理
  • 实现 yaml 高效复用
  • 应用级别的版本管理,当前V3,回滚到V2
helm 2019年 V3版本,变化项

  • V3 版本删除 Tiller (架构变化)
  • Release 可以在不同命名空间重用
  • 将 Chart 推送到 docker 仓库中
安装

https://helm.sh/
https://helm.sh/zh/docs/intro/install/
下载 helm 安装压缩包,上传到 linux
解压 helm,把目录复制到 usr/bin 目录中
  1. [root@k8smaster ~]# cd /opt/k8s/
  2. [root@k8smaster k8s]# tar zxfv helm-v3.0.0-linux-amd64.tar.gz
  3. linux-amd64/
  4. linux-amd64/helm
  5. linux-amd64/README.md
  6. linux-amd64/LICENSE
  7. [root@k8smaster k8s]# mv ./linux-amd64/helm /usr/bin/
  8. # 显示版本,安装完成
  9. [root@k8smaster k8s]# helm version
  10. version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
  11. [root@k8smaster k8s]#
复制代码
配置

添加仓库
  1. # 添加 仓库
  2. [root@k8smaster ~]# helm repo add stable http://mirror.azure.cn/kubernetes/charts
  3. "stable" has been added to your repositories
  4. # 添加 阿里云仓库
  5. [root@k8smaster ~]# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
  6. "aliyun" has been added to your repositories
  7. # 查看
  8. [root@k8smaster ~]# helm repo list
  9. NAME    URL
  10. stable  http://mirror.azure.cn/kubernetes/charts
  11. aliyun  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
  12. # 更新
  13. [root@k8smaster ~]# helm repo update
  14. Hang tight while we grab the latest from your chart repositories...
  15. ...Successfully got an update from the "aliyun" chart repository
  16. ...Successfully got an update from the "stable" chart repository
  17. Update Complete. ⎈ Happy Helming!⎈
  18. # 删除阿里云
  19. [root@k8smaster ~]# helm repo remove aliyun
  20. "aliyun" has been removed from your repositories
  21. [root@k8smaster ~]# helm repo list
  22. NAME    URL
  23. stable  http://mirror.azure.cn/kubernetes/charts
  24. [root@k8smaster ~]#
复制代码
部署应用
  1. # 查找 chart
  2. [root@k8smaster ~]# helm search repo weave
  3. NAME                    CHART VERSION   APP VERSION     DESCRIPTION                                       
  4. stable/weave-cloud      0.3.9           1.4.0           DEPRECATED - Weave Cloud is a add-on to Kuberne...
  5. stable/weave-scope      1.1.12          1.12.0          DEPRECATED - A Helm chart for the Weave Scope c...
  6. # 查看 chrt 信息
  7. [root@k8smaster ~]# helm show chart stable/weave-scope
  8. apiVersion: v1
  9. appVersion: 1.12.0
  10. deprecated: true
  11. description: DEPRECATED - A Helm chart for the Weave Scope cluster visualizer.
  12. home: https://www.weave.works/oss/scope/
  13. icon: https://avatars1.githubusercontent.com/u/9976052?s=64
  14. keywords:
  15. - containers
  16. - dashboard
  17. - monitoring
  18. name: weave-scope
  19. sources:
  20. - https://github.com/weaveworks/scope
  21. version: 1.1.12
  22. # 安装,名字叫 ui
  23. [root@k8smaster ~]# helm install ui stable/weave-scope
  24. NAME: ui
  25. LAST DEPLOYED: Mon Nov 28 13:15:05 2022
  26. NAMESPACE: default
  27. STATUS: deployed
  28. REVISION: 1
  29. NOTES:
  30. You should now be able to access the Scope frontend in your web browser, by
  31. using kubectl port-forward:
  32. kubectl -n default port-forward $(kubectl -n default get endpoints \
  33. ui-weave-scope -o jsonpath='{.subsets[0].addresses[0].targetRef.name}') 8080:4040
  34. then browsing to http://localhost:8080/.
  35. For more details on using Weave Scope, see the Weave Scope documentation:
  36. https://www.weave.works/docs/scope/latest/introducing/
  37. # 查看列表
  38. [root@k8smaster ~]# helm list
  39. NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
  40. ui      default         1               2022-11-28 13:15:05.404335352 +0800 CST deployed        weave-scope-1.1.12      1.12.0 # 查看发布状态
  41. [root@k8smaster ~]# helm status ui
  42. NAME: ui
  43. LAST DEPLOYED: Mon Nov 28 13:15:05 2022
  44. NAMESPACE: default
  45. STATUS: deployed
  46. REVISION: 1
  47. NOTES:
  48. You should now be able to access the Scope frontend in your web browser, by
  49. using kubectl port-forward:
  50. kubectl -n default port-forward $(kubectl -n default get endpoints \
  51. ui-weave-scope -o jsonpath='{.subsets[0].addresses[0].targetRef.name}') 8080:4040
  52. then browsing to http://localhost:8080/.
  53. For more details on using Weave Scope, see the Weave Scope documentation:
  54. https://www.weave.works/docs/scope/latest/introducing/
  55. # 查看服务 当前是不暴露端口的
  56. [root@k8smaster ~]# kubectl get svc
  57. NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
  58. javademo1        NodePort    10.106.43.46   <none>        8111:31452/TCP   40d
  59. kubernetes       ClusterIP   10.96.0.1      <none>        443/TCP          45d
  60. nginx            NodePort    10.103.87.81   <none>        80:30339/TCP     45d
  61. nginx-nfs        NodePort    10.99.84.9     <none>        80:30205/TCP     19d
  62. ui-weave-scope   ClusterIP   10.101.4.212   <none>        80/TCP           3m19s
  63. # 修改 ui-weave-scpoe 暴露端口
  64. [root@k8smaster ~]# kubectl edit svc ui-weave-scope
  65. #  type: ClusterIP =>  改成 type: NodePort
  66. service/ui-weave-scope edited
  67. # 再次查看,暴露了 30690 端口
  68. [root@k8smaster ~]# kubectl get svc
  69. NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
  70. javademo1        NodePort    10.106.43.46   <none>        8111:31452/TCP   40d
  71. kubernetes       ClusterIP   10.96.0.1      <none>        443/TCP          45d
  72. nginx            NodePort    10.103.87.81   <none>        80:30339/TCP     45d
  73. nginx-nfs        NodePort    10.99.84.9     <none>        80:30205/TCP     19d
  74. ui-weave-scope   NodePort    10.101.4.212   <none>        80:30690/TCP     5m26s
  75. # 删除 ui-weave-scope
  76. [root@k8smaster ~]# kubectl delete deployment ui-weave-scope
  77. [root@k8smaster ~]# kubectl delete svc ui-weave-scope
复制代码
测试


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

河曲智叟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表