企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控

  • 什么事Helm
  • Helm部署
  • 私有Helm Chart构建
    • 更新
    • 回滚
  • Helm部署nfs
  • Helm部署metrics-server监控

什么事Helm

微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,作为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。Helm通过软件打包的形式,支持发布的版本管理和控制,很大程度上简化了Kubernetes应用部署和管理的复杂性。

随着业务容器化与向微服务架构转变,通过分解巨大的单体应用为多个服务的方式,分解了单体应用的复杂性,使每个微服务都可以独立部署和扩展,实现了敏捷开发和快速迭代和部署。但任何事情都有两面性,虽然微服务给我们带来了很多便利,但由于应用被拆分成多个组件,导致服务数量大幅增加,对于Kubernetest编排来说,每个组件有自己的资源文件,并且可以独立的部署与伸缩,这给采用Kubernetes做应用编排带来了诸多挑战:

管理、编辑与更新大量的K8s配置文件
部署一个含有大量配置文件的复杂K8s应用
分享和复用K8s配置和应用
参数化配置模板支持多个环境
管理应用的发布:回滚、diff和查看发布历史
控制一个部署周期中的某一些环节
发布后的验证
Helm把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。

Helm部署

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

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

在这里插入图片描述
添加环境变量

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

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第1张图片
添加一个helm仓库

helm repo add bitnami httpS://charts.bitnami.com/bitnami
helm repo list

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第2张图片
使用helm部署redis集群

helm search repo redis

在这里插入图片描述
准备镜像
企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第3张图片
企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第4张图片
拉取应用到本地,编辑value文件,读取本地harbor仓库

helm pull bitnami/redis-cluster
tar zxf redis-cluster-6.3.2.tgz
cd redis-cluster/
vim values.yaml
imageRegistry: "reg.westos.org"

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第5张图片

在这里插入图片描述
企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第6张图片
测试,使用helm部署redis集群
本次从当前目录安装:

helm install redis-cluster .

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第7张图片

kubectl get pod

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第8张图片
列出已安装的

helm list


在这里插入图片描述
卸载redis集群

helm uninstall redis-cluster
kubectl get pod

在这里插入图片描述

私有Helm Chart构建

如果harbor仓库中没有chart 先将docker-compose down
然后执行安装 脚本
sh install.sh --with-chartmuseum
企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第9张图片

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第10张图片

helm create mychart
tree mychart/
cd mychart/

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第11张图片

编写mychart的应用描述信息

vim Chart.yaml

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第12张图片
编写应用部署信息:

vim values.yaml

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第13张图片
检查依赖和模板配置是否正确

helm lint mychart/

在这里插入图片描述
将应用打包

helm package mychart/

在这里插入图片描述
建立本地chart仓库
企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第14张图片
##添加仓库会报错 因为没有证书

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

在这里插入图片描述
添加认证密钥

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


在这里插入图片描述
更新密钥认证

update-ca-trust

在这里插入图片描述
重新添加chart仓库

helm repo add westos https://reg.westos.org/chartrepo/charts 
helm repo list

在这里插入图片描述
查看plugins的位置

helm env

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第15张图片
添加push命令

cd /root/.local/share/helm/plugins
mkdir -p /root/.local/share/helm/plugins
cd /root/.local/share/helm/plugins
mkdir push

在这里插入图片描述
上传mychart到仓库中

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

在这里插入图片描述
更新后在harbor中看到
企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第16张图片
更新后才可search到

helm search repo mychart
helm repo update
helm search repo mychart

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第17张图片
部署仓库中的mychart并测试访问

helm install mychart westos/mychart

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第18张图片

kubectl get all
curl 10.96.14914

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第19张图片

更新

cd mychart/
vim Chart.yaml

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第20张图片

vim values.yaml

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第21张图片
打包上传

helm lint mychart
helm package mychart

在这里插入图片描述
在这里插入图片描述

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

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第22张图片
更新mychart,访问测试,版本更新成功

helm upgrade mychart westos/mychart

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第23张图片
访问查看svc

kubectl get svc
curl 10.96.149.14

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第24张图片

回滚

helm history mychart
helm rollback  mychart 1

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第25张图片

Helm部署nfs

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之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第26张图片

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第27张图片

创建工作目录

mkdir nfs-subdir-external-provisioner
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之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第28张图片
在这里插入图片描述
在这里插入图片描述
删除之前的nfs配置、pvc、pv

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

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第29张图片
删除之前的helm配置服务

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

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第30张图片
使用helm安装nfs 并查看

helm install nfs-client-provisioner . -n nfs-client-provisioner
helm list --all-namespaces



企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第31张图片
查看默认sc已配置成功

kubectl get sc

在这里插入图片描述
测试:拉起pvc

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

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第32张图片
测试完成,删除test-pvc

kubectl delete -f components.yaml
kubectl top node

在这里插入图片描述

Helm部署metrics-server监控

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

kubectl delete -f components.yaml
kubectl top node

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第33张图片
创建namespace,将helm服务放到该ns中

helm pull bitnami/metrics-server

解压并配置value

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

在这里插入图片描述
在这里插入图片描述

vim values.yaml

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第34张图片
准备镜像
企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第35张图片

使用helm安装 会报错

helm install metrics-server . -n metrics-server

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第36张图片
解决报错问题

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

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第37张图片
查看服务

kubectl -n metrics-server get all

企业入门实战--k8s之Helm之私有Helm 、使用Helm部署nfs和metrics-server监控_第38张图片

kubectl top node

在这里插入图片描述

你可能感兴趣的:(企业入门实战,helm,k8s,运维)