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 repo update
查看仓库中是否有可用的资源
helm search repo bitnami | grep nginx
helm search repo bitnami | grep mysql
在安装之前可以搜索一下
查看chart nginx的详情:
helm show chart bitnami/nginx
安装:
helm install my-nginx bitnami/nginx -n default
helm install:安装
my-nginx:release安装的名称或者版本
bitnami/nginx:bitnami仓库名,nginx就是chart
工作中一般要指定命名空间
访问
可以改svc的类型
kubectl edit svc my-nginx
这个包里面包含 deployment service
删除:
不指定名称安装
helm install bitnami/nginx --generate-name
--geberate-name 随机指定名称
查看所有heml安装的容器
REVISION有回滚的作用
helm自定义模板:
根据自己的需求定义chart。然后部署到集群当中去
例:
helm pull stable/mysql
查看结构:
文件夹里包含了所有yaml文件的集合
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 lint nginx
把创建好的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 install nginx-11 ./nginx -n default
删除:
helm uninstall nginx-11
一键部署一键删除 helm的主要作用
使用打包的文件安装
访问:
vim /etc/hosts
修改chart之后重新部署
cd nginx/
vim values.yaml
加上一个字段,传值
不影响里面的pod
回滚:
每次升级都有一个版本号
helm history nginx-11
上传harbor仓库
在仓库节点
cd /opt/harbor
vim harbor.yml
添加:
#在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 push nginx-0.2.0.tgz oci://hub.test.com/charts --insecure-skip-tls-verify
--insecure-skip-tls-verify 跳过https验证
拉取镜像:
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就是一个一键部署微服务的工具,可以跳过繁琐的自定义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