企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控

企业运维实战--k8s学习笔记15.Helm

  • 前言--Helm简介
  • 一、Helm部署
  • 二、私有Helm Chart构建
  • 三、Helm部署nfs
  • 四、Helm部署metrics-server监控


前言–Helm简介

Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。
Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。

一、Helm部署

安装helm,解压后将二进制文件移动到环境变量目录中

tar zxf helm-v3.4.1-linux-amd64.tar.gz
cd linux-amd64/
cp helm /usr/local/bin/

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第1张图片

添加环境变量

echo "source <(helm completion bash)" >> ~/.bashrc
source .bashrc

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第2张图片

测试搜索

helm search hub nginx

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第3张图片

Helm 添加第三方 Chart 库,

helm repo add bitnami https://charts.bitnami.com/bitnami

在这里插入图片描述

列出默认default ns下的第三方chart仓库

helm repo list

在这里插入图片描述

使用helm部署redis集群

helm search repo redis

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第4张图片
准备镜像
企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第5张图片

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第6张图片

拉取应用到本地,编辑value文件,读取本地harbor仓库

helm pull bitnami/redis-cluster
tar zxf redis-cluster-6.3.2.tgz
cd redis-cluster/
vim values.yaml

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第7张图片

测试,使用helm部署redis集群
支持多种安装方式,本次从当前目录安装:

helm install redis-cluster .
kubectl get pod

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第8张图片

列出已安装的

helm list
helm list --all-namespaces

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第9张图片

在这里插入图片描述

卸载redis集群

helm uninstall redis-cluster
kubectl get pod

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第10张图片

二、私有Helm Chart构建

helm create mychart
tree mychart/
cd mychart/

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第11张图片

编写mychart的应用描述信息

vim Chart.yaml

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第12张图片

编写应用部署信息:

vim values.yaml

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第13张图片

检查依赖和模板配置是否正确

helm lint mychart/

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第14张图片

将应用打包

helm package mychart/

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第15张图片

建立本地chart仓库,只需要连接到之前的harbor仓库即可
企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第16张图片

helm  repo  add westos https://hyl.westos.org/chartrepo/charts

在这里插入图片描述

添加认证密钥

cp /etc/docker/certs.d/hyl.westos.org/ca.crt /etc/pki/ca-trust/source/anchors/
ll /etc/pki/ca-trust/source/anchors/

在这里插入图片描述

更新密钥认证

update-ca-trust

在这里插入图片描述

重新添加chart仓库

helm  repo  add westos https://hyl.westos.org/chartrepo/charts

在这里插入图片描述

helm repo list

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第17张图片

查看plugins的位置

helm env

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第18张图片

添加push命令

cd /root/.local/share/helm/plugins
mkdir -p /root/.local/share/helm/plugins
cd /root/.local/share/helm/plugins
mkdir push
tar zxf ~/helm-push_0.9.0_linux_amd64.tar.gz -C push/

在这里插入图片描述

上传mychart到仓库中

helm push mychart-0.1.0.tgz westos --insecure -u admin -p westos

在这里插入图片描述
更新后在harbor中看到
企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第19张图片

更新后才可search到

helm search repo mychart
helm repo update
helm search repo mychart

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第20张图片

helm show values westos/mychart

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第21张图片

部署仓库中的mychart并测试访问

helm install mychart westos/mychart

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第22张图片

kubectl get all
curl 10.96.143.134

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第23张图片

更新迭代mychart的版本

cd mychart/
vim Chart.yaml

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第24张图片

vim values.yaml

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第25张图片

打包上传

helm lint mychart
helm package mychart

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第26张图片

helm push mychart-0.2.0.tgz westos --insecure -u admin -p westos

在这里插入图片描述

helm repo update

在这里插入图片描述

查看所有版本

helm search repo mychart
helm search repo mychart -l

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第27张图片

更新mychart,访问测试,版本更新成功

helm upgrade mychart westos/mychart

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第28张图片

访问查看svc

kubectl get svc
curl 10.96.143.134

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第29张图片

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第30张图片

三、Helm部署nfs

添加第三方charts到本地并拉取

helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm  pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
helm repo add bitnami https://charts.bitnami.com/bitnami

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第31张图片
企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第32张图片
企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第33张图片

创建工作目录

mkdir nfs-subdir-external-provisioner

拉取charts并且移动到动作目录

helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner

解压并编辑values.yaml

tar zxf nfs-subdir-external-provisioner-4.0.12.tgz
cd nfs-subdir-external-provisioner/

vim values.yaml

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第34张图片
在这里插入图片描述
在这里插入图片描述

删除之前的nfs配置、pvc、pv

cd volumes/nfs-client/
kubectl delete -f  nfs-client-provisioner.yaml
kubectl delete pvc --all
kubectl delete pv --all

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第35张图片

删除之前的helm配置服务

helm list --all-namespaces
helm uninstall mychart
helm list --all-namespaces

在这里插入图片描述

使用helm安装nfs

helm install nfs-client-provisioner . -n nfs-client-provisioner

查看

helm list --all-namespaces

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第36张图片

查看默认sc已配置成功

kubectl get sc

在这里插入图片描述

测试:拉起pvc

cat test-pvc.yaml
kubectl apply -f test-pvc.yaml
kubectl get pvc

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第37张图片

测试完成,删除testpvc

kubectl delete -f test-pvc.yaml
kubectl get pvc
kubectl get pv

四、Helm部署metrics-server监控

删除之前的metrics-server监控服务

kubectl delete -f components.yaml
kubectl top node

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第38张图片

创建ns,将helm服务放到该ns中

kubectl create namespace metrics-server

在这里插入图片描述

拉取chart metrics-server

helm pull bitnami/metrics-server

解压并配置value

tar zxf metrics-server-5.9.2.tgz
cd metrics-server/

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第39张图片

vim values.yaml

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第40张图片

准备镜像
企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第41张图片

使用helm安装,并按照提示解决报错

helm install metrics-server . -n metrics-server

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第42张图片

 helm upgrade --namespace metrics-server metrics-server bitnami/metrics-server     --set apiService.create=true
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第43张图片

查看服务是否健康

kubectl -n metrics-server get all

企业运维实战--k8s学习笔记15.Helm之私有Helm Chart构建、使用Helm部署nfs和metrics-server监控_第44张图片

kubectl top node

在这里插入图片描述

你可能感兴趣的:(运维,kubernetes,k8s,helm)