helm 一键部署

helm HPA rancher 安全机制

k8s的核心功能:组件功能 k8s的网络 命令行基本的增删改查 deployment statefulsets

挂载卷:emptyDir, hostPath, nfs

pv pvc 动态pvc必问

configmap

ingress

hpa pod 的自动伸缩

helm

什么是helm,再没有整个helm之前,deplyment service ingress helm的作用就是通过打包的方式, 把deployment,service ingress 这些打包在一块,一键部署服务。类似于yum

官方提供一个类似于安装仓库的功能,开源实现一键话部署应用

helm的概念:

三个部分组成:

chart: helm的软件包,部署包,service ingress,定义好的yaml资源。类似于yum的rpm包。

Release:可以理解为版本,也可以理解为在安装过程中,给这个部署的应用起一个名字。

Repostory:仓库,提供一个服务器,服务器中包含chart的资源。yaml资源保存的地址。

helm2 已经淘汰

helm3:纯命令行方式

从网站拉取软件包。看录屏。

下镜像

安装helm

mkdir helm

cd helm/

tar -xf helm-v3.12.0-linux-amd64.tar.gz

cd linux-amd64/

mv helm /usr/local/bin/helm

helm的字段补齐命令

vim /etc/profile

添加helm的自动补齐

source /etc/profile

创建仓库

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

helm repo add stable Index of /kubernetes/charts/

helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

helm repo add incubator Helm Incubator | charts

查看仓库

helm repo list

helm 一键部署_第1张图片

更新仓库资源。

helm repo update

查看仓库中是否有可用的资源

helm search repo bitnami | grep nginx

helm search repo bitnami | grep mysql

在安装之前可以搜索一下

查看chart nginx的详情:

helm show chart bitnami/nginx

helm 一键部署_第2张图片

安装:

helm install my-nginx bitnami/nginx -n default

helm install:安装

my-nginx:release安装的名称或者版本

bitnami/nginx:bitnami仓库名,nginx就是chart

工作中一般要指定命名空间

helm 一键部署_第3张图片

访问

helm 一键部署_第4张图片

可以改svc的类型

kubectl edit svc my-nginx

helm 一键部署_第5张图片

这个包里面包含 deployment service

删除:

不指定名称安装

helm install bitnami/nginx --generate-name

--geberate-name 随机指定名称

查看所有heml安装的容器

REVISION有回滚的作用

helm自定义模板:

根据自己的需求定义chart。然后部署到集群当中去

例:

helm pull stable/mysql

查看结构:

helm 一键部署_第6张图片

文件夹里包含了所有yaml文件的集合

helm 一键部署_第7张图片

charts:用于存储依赖环境,如果这个chart依赖于其他chart,依赖文件保存在这个目录。

Chart.yaml:helm chart的元数据文件,包含了这个chart的名称,版本,维护者信息等等。

temjplates:包含清单模板的目录。

deployment.yaml:部署应用的模板文件

helpers.tpl:帮助文档,告诉用户如何来定义模板的值

hpa.yaml:定义了应用程序分布式的扩缩容行为

ingress.yaml:定义了外部流量如何转发到应用程序

NOTES.txt:注意事项

serviceaccount.yaml:应用程序的服务账号

service.yaml:集群内部的访问

tests test-connection.yaml:测试的目录和文件,部署完chart之后,用来测试的文件

values.yaml:核心文件,自定义的值,都是通过values.yaml,把我们数据覆盖到安装的chart.

查看chart.yaml版本

vim Chart.yaml

部署完之后,如果打包的话,chart的版本就是0.1.0

vim values.yaml

核心文件。

修改

helm 一键部署_第8张图片

helm 一键部署_第9张图片

helm 一键部署_第10张图片

验证语法是否正确:

要退出本层目录才能检测。

helm lint nginx

helm 一键部署_第11张图片

把创建好的chart进行打包

helm package nginx

部署自定义的chart

两种方式:

基于目录

helm install 安装chart

nginx-11:release 版本号

./nginx:当前目录下的nginx的chart

--dry-run --debug:这个chart不会部署到集群当中,参数验证,测试chart的配置是否正确。

helm install nginx-11 ./nginx --dry-run --debug

helm 一键部署_第12张图片

表明测试没问题

创建:

helm install nginx-11 ./nginx -n default

helm 一键部署_第13张图片

helm 一键部署_第14张图片

helm 一键部署_第15张图片

helm 一键部署_第16张图片

删除:

helm uninstall nginx-11

一键部署一键删除 helm的主要作用

使用打包的文件安装

helm 一键部署_第17张图片

访问:

vim /etc/hosts

修改chart之后重新部署

cd nginx/

vim values.yaml

helm 一键部署_第18张图片

加上一个字段,传值

helm 一键部署_第19张图片

helm 一键部署_第20张图片

不影响里面的pod

回滚:

每次升级都有一个版本号

helm history nginx-11

helm 一键部署_第21张图片

上传harbor仓库

在仓库节点

cd /opt/harbor

vim harbor.yml

添加:

helm 一键部署_第22张图片

#在chart当中使用绝对路径的URL, http: //hub. test. com/ charts

重新安装即可

./install.sh

回到master节点

安装helm-push到指定位置

cd helm

mkdir -p ~/.local/share/helm/plugins/helm-push

tar -xf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push

登录:

docker login -u admin -p 123456 https://hub.test.com

helm 一键部署_第23张图片

打包上传

上传到仓库:

helm push nginx-0.2.0.tgz oci://hub.test.com/charts --insecure-skip-tls-verify

--insecure-skip-tls-verify 跳过https验证

helm 一键部署_第24张图片

拉取镜像:

helm pull oci://hub.test.com/charts/nginx --version 0.2.0 --insecure-skip-tls-verify

安装:

helm install nginx-22 ./nginx-0.2.0.tgz

helm 一键部署_第25张图片

helm 一键部署_第26张图片

helm就是一个一键部署微服务的工具,可以跳过繁琐的自定义yaml过程,一键式的拉取和部署好使用自定义或者模块定义的服务。

helm的常用命令:

helm repo add 仓库名 url地址 添加仓库

helm repo undate 不加仓库名,就是更新所有仓库

helm repo list 查看仓库列表

helm repo remove 仓库名 删除仓库

helm show chart stable/nginx 查看chart信息

helm show all stable/nginx 查看所有详细信息

helm install nginx-11 stable/nginx -n lucky-cloud 安装官网的默认版本

helm uninstall nginx-11 删除安装好的chart

helm list 查看已经安装的chart

自定义模板:

helm create nginx 创建一个自定义的chart模板

values.yaml:这里值会传给templates里面的

yaml文件

helm install nginx-11 ./nginx

helm install nginx-11 ./nginx-0.1.0.tgz

如何打包创建好的chart:

helm package nginx

回滚:

helm history nginx-11

helm rollback nginx-11 1

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