专栏首页编程坑太多「走进k8s」Kubernetes1.15.1的Helm安装使用(37)

「走进k8s」Kubernetes1.15.1的Helm安装使用(37)

使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。Kubernetes 安装deployment和pod,service,都需要查看api了解其中的yaml的语法结构,这样太复杂了,为了简化这个流程。

(一)Helm 介绍

  • ① 官网

https://helm.sh/

  • ② 介绍

Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。Helm 本身的处理逻辑很简单,其自身价值并不大,而有价值的是 Helm 的生态圈和 Helm 官方所提供的众多包含有最佳实践的 chart 包。 Helm 本身的处理逻辑很简单,其自身价值并不大,而有价值的是 Helm 的生态圈和 Helm 官方所提供的众多包含有最佳实践的 chart 包。

  • ③ 组件

chart

一系列用于描述 k8s 资源相关文件的集合,是 Helm 用于打包 k8s 资源的方式。

release

一个 chart 被 Helm 运行后将会生成对应的一个 release。

TillerServer

Helm 的服务端,部署在 k8s 集群内,主要管理 release 相关的存储和与 k8s 的交互。

helm

Helm 的客服端,通过 gRPC 协议与 TillerServer 进行交互,主要提供了增删查改 chart、release 和 repository 相关的功能。

config

包含了应用发布配置信息

  • ④ 功能 1.创建新的 chart。2.chart 打包成 tgz 格式。3.上传 chart 到 chart 仓库或从仓库中下载 chart。4.在Kubernetes集群中安装或卸载 chart。5.管理用Helm安装的 chart 的发布周期。

(二)Helm 安装

  • ① 一键安装客户端是省时省力

只要不报错一直等待就可以了,根据网速来的 可能比较慢,但是终究可以下载完毕

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh

chmod 700 get_helm.sh

 ./get_helm.sh
  • ② 安装依赖的yum socat
sudo yum install -y socat
  • ③ 初始化helm

Helm 默认会去 storage.googleapis.com 拉取镜像,如果你当前执行的机器不能访问该域名的话可以使用。

docker search tiller

# 一会要用这个jessestuart/tiller
  • ④ 权限

因为helm部署的存在跨命名空间的,所以直接给他赋ClusterRole这个权限。

---
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

运行权限赋予

kubectl create -f helm-rbac.yaml

再次验证

helm version

发现pod下载失败,查看原因:gcr.io/kubernetes-helm/tiller:v2.14.3 无法拉取, 可能读者当你看到的时候tiller版本可能不是在v2.14.3,这个版本其实不用考虑。

kubectl get pod --all-namespaces

kubectl describe pod tiller-deploy-75f6c87b87-vdw2c -n kube-system

修改kubectl edit deploy tiller-deploy -n kube-system

kubectl edit deploy tiller-deploy -n kube-system

# image: gcr.io/kubernetes-helm/tiller:v2.14.3   修改成图片上的jessestuart/tiller,上边docker search 的时候提到过。
  • ⑤ kubernetes里面的pod信息
kubectl get pod -n kube-system

创建了tiller的 ServceAccount 后还没完, Tiller 之前已经就部署成功了,而且是没有指定 ServiceAccount 的,所以我们需要给 Tiller 打上一个 ServiceAccount 的补丁

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

查看deploy的用户信息

kubectl describe deploy --namespace kube-system tiller-deploy

(三)Helm使用

  • ① 创建
mkdir helm

helm create hello-helm

tree
  • ② 文档地址

https://docs.helm.sh/developing_charts/#charts

  • ③ 更改 value.yaml

将默认的 stable 更改为 1.7.9, Service 的类型也改成 NodePort

vi ./hello-helm/values.yaml
  • ④ 安装刚修改后的helm
helm install ./hello-helm

查看helm的文件

kubectl get pods -o wide

kubectl get svc -o wide

修改成了NodePort可以直接访问 svc 查看到的端口 直接访问就可以访问nginx

  • ⑤ 查看release

create 2次导致的。

helm list
  • ⑥ 打包chart
helm package hello-helm
  • ⑦ 删除release

list中的都删除了。

helm delete intentional-ocelot

helm delete washed-panda

查看pod,已经没有了

kubectl get pods

PS:安装helm,使用了很多种方式了,感觉这种是最稳的,分享给大家,这里就简单的介绍了helm的几个命令:创建,删除,查看,打包,更多的命令还是查看helm的官方文档吧,下次继续说说helm的基本使用。

本文分享自微信公众号 - 编程坑太多(idig88),作者:诸葛阿明

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springboot(18)common-boot

    IT故事会
  • 写博客对程序员很重要吗?

    IT故事会
  • 『互联网架构』软件架构-zookeeper场景讲解(分布式锁)和zkclient使用(35)

    源码:https://github.com/limingios/netFuture/源码/『互联网架构』软件架构-zookeeper场景讲解(分布式锁)和zkc...

    IT故事会
  • 5分钟教你在kubernetes集群上安装Helm,并部署应用

    这篇文章将一步步教你如何在Kubernetes集群安装和配置helm,并用其部署和管理应用程序。

    我的小碗汤
  • 二进制安装k8s集群(19)-安装helm和tiller

    在上一篇文章中我们安装了nginx application,在这个安装过程中我们部署了deployment文件,service文件,ingress文件。当然有的...

    TA码字
  • 欧拉回路

    一、定义 欧拉回路:图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次, 称这条回路为欧拉回路。具有欧拉...

    用户1215536
  • 本体网络Ontology Zero入选国家工信部区块链开源项目计划

    “ 区块链业内传来重磅消息!新一代分布式链网体系“本体网络”的许可链开源项目Ontology Zero入选国家工信部区块链开源项目计划,将助力国家区块链技术与产...

    企鹅号小编
  • OpenROV Cockpit说明

    最近的工程要参考 OpenROV 的内容,在 Github 上找到了 OpenROV 的相关包与源码,翻译总结官方提供的 README.md 如下: Co...

    剑影啸清寒
  • 什么是四层应用架构?

      随着移动应用的不断普及,传统后端三层架构已经不能再满足需要了,这种三层架构我们通常称为monolithic(巨石 整体的 铁板一块的)的架构。

    物流IT圈
  • 直播预告|AI领域大咖集结,共同探讨深度合成技术的应用与治理

    近年来,人工智能合成内容(Al-generated Media)快速兴起,利用AI算法生产、修改数据和信息内容,生成文字、音乐、图像、语音、视频等内容获得了广泛...

    优图实验室

扫码关注云+社区

领取腾讯云代金券