helm安装配置

简介: 简介 helm是kubernetes的包管理工具,用于简化部署和管理 Kubernetes 应用。用来管理charts——预先配置好的安装包资源。 Helm和charts的主要作用: 应用程序封装 版本管理 依赖检查 便于应用程序分发 helm是一个C/S框架的软件,helm相当于一个客户端,t.

简介

helm是kubernetes的包管理工具,用于简化部署和管理 Kubernetes 应用。用来管理charts——预先配置好的安装包资源。

Helm和charts的主要作用:

  • 应用程序封装
  • 版本管理
  • 依赖检查
  • 便于应用程序分发

helm是一个C/S框架的软件,helm相当于一个客户端,tiller是一个 服务端

  • Helm CLI 是 Helm 客户端,可以在本地执行
  • Tiller 是服务器端组件,在 Kubernetes 群集上运行,并管理 Kubernetes 应用程序的生命周期
  • Repository 是 Chart 仓库,Helm客户端通过HTTP协议来访问仓库中Chart的索引文件和压缩包

安装

安装之前需要先配置好kubeconfig,kubectl可以正常使用就表示kubeconfig已经配置正确,也可以通过环境变量KUBECONFIG指定helm使用的kubeconfig

安装helm

# 如下地址下载helm二进制文件 
# 解压之后放在自己的PATH路径下
# https://github.com/helm/helm/releases
mkdir -pv helm && cd helm
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
tar xf helm-v2.9.1-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin
rm -rf linux-amd64

# 查看版本,不显示出server版本,因为还没有安装server
helm version
复制代码

简单安装tiller(本次实验采用)

# 部署 tiller
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 \
--stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 查看
kubectl get pods -n kube-system -l app=helm
kubectl get svc -n kube-system -l app=helm
复制代码

安全性更高的安装tiller(tls)

helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 \
--stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts \
--tiller-tls \
--tiller-tls-verify \
--tiller-tls-cert=cert.pem \
--tiller-tls-key=key.pem \
--tls-ca-cert=ca.pem \
--service-account=tiller

# 其他命令都需要使用 tls
# --tls
复制代码

配置rbac

cat >helm-rbac-config.yaml<<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
EOF
kubectl create -f helm-rbac-config.yaml

# 配置tiller使用创建的ServiceAccount
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
复制代码

查看状态

# 查看pod启动情况
kubectl get pod -n kube-system -l app=helm

# 再次查看版本,显示出server版本
helm version
复制代码

简单使用

查看可用charts

# 更新charts列表
helm repo update 

# 搜索可用charts
helm search
helm search mysql
复制代码

查看已经安装的charts

helm list
# helm ls
复制代码

安装测试

以下两种部署方式任选一种

使用命令行模式部署
# 使用命令行模式部署
helm install -n mariadb-test \
--set persistence.enabled=false,mariadbRootPassword=will,mariadbUser=will,mariadbPassword=will,mariadbDatabase=will \
stable/mariadb
复制代码
使用配置文件定制部署
# 使用配置文件方式部署
# 查看可配置项
helm inspect values stable/mariadb

# 获取所有可配置项(去行空行和注释)
helm inspect values stable/mariadb | egrep -v '^\s*#|^$'

# 配置
cat >config.yml<<EOF
usePassword: true
mariadbRootPassword: will
mariadbUser: will
mariadbPassword: will
mariadbDatabase: will
persistence:
  enabled: false
EOF

# 部署
helm install -n mariadb-test -f config.yml stable/mariadb
复制代码
测试
# 查看状态
helm ls
kubectl get pods
kubectl get svc

# 连接测试
kubectl run mariadb-cli --image=bitnami/mariadb:10.1.28-r1 -i --tty bash
mysql -hmariadb-test-mariadb -uwill -pwill will
show databases;
select version();
select user();

# 删除 mariadb-cli
kubectl delete deploy mariadb-cli

# 删除部署
helm delete mariadb-test --purge
复制代码

自定义chart

创建chart

# 创建
helm create hello

# chart目录结构介绍
hello
├── charts # 本chart依赖的chart
├── Chart.yaml # 描述chart的基本信息,如名称版本等
├── templates # kubernetes manifest文件模板目录
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── ingress.yaml
│   ├── NOTES.txt # 纯文本文件,可在其中填写chart的使用说明
│   └── service.yaml
└── values.yaml # chart配置的默认值

# 对chart的模板和配置进行测试
helm install --dry-run --debug ./
复制代码

测试安装chart

# 安装
helm install -n hello-test ./

# 查看
helm ls
kubectl get pods
kubectl get svc

# 端口转发
export POD_NAME=$(kubectl get pods --namespace default -l "app=hello,release=hello-test" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward $POD_NAME 8080:80

# 访问
curl http://127.0.0.1:8080

# 删除
helm delete hello-test --purge
复制代码

chart分发

# 打包为压缩包
helm package ./

本文转自掘金- helm安装配置
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Linux
Linux下安装curl
Linux下安装curl
2981 0
|
10月前
|
Linux 数据安全/隐私保护 虚拟化
虚拟机安装(CentOS7)
准备CentOS7镜像及VMware Workstation虚拟机工具,可从提供链接下载。使用百度云资源或自行获取安装包,在电脑上创建新虚拟机,参照指定教程完成安装。默认登录用户为root,密码由用户自设。
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
11月前
|
边缘计算 缓存 API
「玩透ESA」重塑下一代边缘计算与内容分发的战略利器
阿里云边缘加速ESA重塑边缘计算,将算力下沉至城市级节点,实现低延迟、高带宽与低成本。支持边缘计算、智能缓存与Serverless函数,广泛应用于直播、云游戏、物联网等场景,助力企业构建“云-边-端”一体化架构,玩转下一代内容分发与业务创新。(238字)
|
存储 Prometheus 运维
All in One:Prometheus 多实例数据统一管理最佳实践
当管理多个Prometheus实例时,阿里云Prometheus托管版相比社区版提供了更可靠的数据采集和便捷的管理。本文比较了全局聚合实例与数据投递方案,两者在不同场景下各有优劣。
63978 131
|
SQL 关系型数据库 MySQL
MySQL:CTE 通用表达式
CTE(通用表表达式)为处理复杂查询提供了强大的工具。通过普通CTE,可以简化查询逻辑,提高可读性;通过递归CTE,可以优雅地处理层级结构数据。掌握CTE的使用,对于提升SQL查询能力和优化数据库操作有着重要意义。希望本文能帮助你更好地理解和使用MySQL中的CTE,提高工作效率和代码质量。
717 7
|
人工智能 缓存 安全
每一个大模型应用都需要一个 AI 网关|场景和能力
本次分享的主题是每一个大模型应用都需要一个 AI 网关|场景和能力。由 API 网关产品经理张裕(子丑)进行分享。主要分为三个部分: 1. 企业应用 AI 场景面临的挑战 2. AI 网关的产品方案 3. AI 网关的场景演示
2217 2
|
应用服务中间件 nginx Docker
[loki]轻量级日志聚合系统loki快速入门
[loki]轻量级日志聚合系统loki快速入门
1362 5
|
缓存 Java 微服务
Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案
Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案
860 1

热门文章

最新文章