河曲智叟 发表于 2022-12-5 11:56:08

Kubernetes(K8S) helm 安装

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 目录中
https://img2023.cnblogs.com/blog/80824/202211/80824-20221128104604361-1243434059.png
# cd /opt/k8s/
# tar zxfv helm-v3.0.0-linux-amd64.tar.gz
linux-amd64/
linux-amd64/helm
linux-amd64/README.md
linux-amd64/LICENSE
# mv ./linux-amd64/helm /usr/bin/
# 显示版本,安装完成
# helm version
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
# 配置

添加仓库
# 添加 仓库
# helm repo add stable http://mirror.azure.cn/kubernetes/charts
"stable" has been added to your repositories
# 添加 阿里云仓库
# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
"aliyun" has been added to your repositories
# 查看
# helm repo list
NAME    URL
stablehttp://mirror.azure.cn/kubernetes/charts
aliyunhttps://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
# 更新
# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "aliyun" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈
# 删除阿里云
# helm repo remove aliyun
"aliyun" has been removed from your repositories
# helm repo list
NAME    URL
stablehttp://mirror.azure.cn/kubernetes/charts
# 部署应用

# 查找 chart
# helm search repo weave
NAME                  CHART VERSION   APP VERSION   DESCRIPTION                                       
stable/weave-cloud      0.3.9         1.4.0         DEPRECATED - Weave Cloud is a add-on to Kuberne...
stable/weave-scope      1.1.12          1.12.0          DEPRECATED - A Helm chart for the Weave Scope c...
# 查看 chrt 信息
# helm show chart stable/weave-scope
apiVersion: v1
appVersion: 1.12.0
deprecated: true
description: DEPRECATED - A Helm chart for the Weave Scope cluster visualizer.
home: https://www.weave.works/oss/scope/
icon: https://avatars1.githubusercontent.com/u/9976052?s=64
keywords:
- containers
- dashboard
- monitoring
name: weave-scope
sources:
- https://github.com/weaveworks/scope
version: 1.1.12
# 安装,名字叫 ui
# helm install ui stable/weave-scope
NAME: ui
LAST DEPLOYED: Mon Nov 28 13:15:05 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
You should now be able to access the Scope frontend in your web browser, by
using kubectl port-forward:

kubectl -n default port-forward $(kubectl -n default get endpoints \
ui-weave-scope -o jsonpath='{.subsets.addresses.targetRef.name}') 8080:4040

then browsing to http://localhost:8080/.
For more details on using Weave Scope, see the Weave Scope documentation:

https://www.weave.works/docs/scope/latest/introducing/
# 查看列表
# helm list
NAME    NAMESPACE       REVISION      UPDATED                                 STATUS          CHART                   APP VERSION
ui      default         1               2022-11-28 13:15:05.404335352 +0800 CST deployed      weave-scope-1.1.12      1.12.0 # 查看发布状态
# helm status ui
NAME: ui
LAST DEPLOYED: Mon Nov 28 13:15:05 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
You should now be able to access the Scope frontend in your web browser, by
using kubectl port-forward:

kubectl -n default port-forward $(kubectl -n default get endpoints \
ui-weave-scope -o jsonpath='{.subsets.addresses.targetRef.name}') 8080:4040

then browsing to http://localhost:8080/.
For more details on using Weave Scope, see the Weave Scope documentation:

https://www.weave.works/docs/scope/latest/introducing/
# 查看服务 当前是不暴露端口的
# kubectl get svc
NAME             TYPE      CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
javademo1      NodePort    10.106.43.46   <none>      8111:31452/TCP   40d
kubernetes       ClusterIP   10.96.0.1      <none>      443/TCP          45d
nginx            NodePort    10.103.87.81   <none>      80:30339/TCP   45d
nginx-nfs      NodePort    10.99.84.9   <none>      80:30205/TCP   19d
ui-weave-scope   ClusterIP   10.101.4.212   <none>      80/TCP         3m19s
# 修改 ui-weave-scpoe 暴露端口
# kubectl edit svc ui-weave-scope
#type: ClusterIP =>改成 type: NodePort
service/ui-weave-scope edited
# 再次查看,暴露了 30690 端口
# kubectl get svc
NAME             TYPE      CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
javademo1      NodePort    10.106.43.46   <none>      8111:31452/TCP   40d
kubernetes       ClusterIP   10.96.0.1      <none>      443/TCP          45d
nginx            NodePort    10.103.87.81   <none>      80:30339/TCP   45d
nginx-nfs      NodePort    10.99.84.9   <none>      80:30205/TCP   19d
ui-weave-scope   NodePort    10.101.4.212   <none>      80:30690/TCP   5m26s
# 删除 ui-weave-scope
# kubectl delete deployment ui-weave-scope
# kubectl delete svc ui-weave-scope测试
https://img2023.cnblogs.com/blog/80824/202211/80824-20221128132218017-209925772.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Kubernetes(K8S) helm 安装