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

使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。Kubernetes 安装deployment和pod,service,都需要查看api了解其中的yaml的语法结构,这样太复杂了,为了简化这个流程。
(一)Helm 介绍
- ① 官网
- ② 介绍
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
- ② 文档地址
- ③ 更改 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的基本使用。
>>原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!>>原文链接地址:「走进k8s」Kubernetes1.15.1的Helm安装使用(37)
上一篇: 「走进k8s」Kubernetes1.15.1的Ingress TLS 与 Traefik路径转发(36)已是最新文章