helm包管理工具
K8S正常部署应用是如下方式
kubectl create deployment web --image=nginx --dru-run=client -o yaml > web.yaml
kubecrl expose web --port=80 --target-port=80 --type NodePort --dry-run=client -o yaml > svc.yanl kubectl apply -f web.yaml
kubectl apply -f svc.yaml
创建ingress 规则暴露
如果需要部署的应用多了就需要经常修改或创建yaml,部署起来就会力不从心了,目前kubernetes推出了helm 3.0版本,
解决管理应用问题,重复使用yaml
1、将这些yaml作为整体管理
2、解决yaml高效复用
3、不支持应用级别版本管理
helm 是一个命令行管理工具
chart 把yaml打包
release 版本,指应用级别的版本管理
helm v3
1、 架构改变,去掉Tiller,直接helm通过kubeconfig连接apiserver
2、 release名称可以在不同命名空间
helm官网地址:https://helm.sh/docs/intro/quickstart/
下载地址:https://github.com/helm/helm/releases
部署helm
wget https://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz
安装
tar xf helm-v3.0.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/
配置harbor源仓库
helm repo list #查看已经配置的源
helm repo add stable http://mirror.azure.cn/kubernetes/charts #添加源仓库地址
helm search repo weave #搜索镜像
部署容器,weave 官方的UI镜像
helm install ui stable/weave-scope
helm list #查看已经部署的版本
kubectl edit svc ui-weave-scope #修改type暴露NodePort访问

kubectl get svc,ep


kubectl get pods -o wide|grep weave

制作chart
helm create mychart
执行命令后会自动生成两个文件夹和两个yaml 文件
charts templates Chart.yaml values.yaml
一般不会有什么内容 模板文件yaml存放位置 属性信息 所有yaml全局变量

删除原来templates下的所有yaml文件,生成自己的项目文件,rm -rf mychart/templates/* 生成yaml文件
kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > deployment.yaml
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort --dry-run=client -o yaml > service.yaml
使用helm 直接安装目录下的即可
helm install web mychart/

升级
helm upgrade web mychart
helm核心应用
yaml 里面进行变量进行传入,维护values.yaml
一套yaml部署多个应用时,找出yaml修改的位置
1、 资源名称
2、 镜像
3、 标签
4、 副本数
5、 端口
6、 PV、PVC 等等这些
service的需要修改的
1、 端口
2、 资源名称
3、 标签。。。等等
动态渲染模板
标准deployment模板
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
strategy: {}
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
动态deployment模板
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-deploy
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app: {{ .Values.label }}
strategy: {}
template:
metadata:
labels:
app: {{ .Values.label }}
spec:
containers:
- image: {{ .Values.image }}:{{ .Values.tag }}
name: nginx
标准的service模板
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx
name: nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: NodePort
动态service模板
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-svc
spec:
ports:
- port: 80
protocol: TCP
targetPort: {{ .Values.port }}
selector:
app: {{ .Values.label }}
type: NodePort
全局变量模板values.yaml
replicas: 1
image: lizhenliang/java-demo
tag: latest
label: java-demo
port: 8080
测试执行
helm install --dry-run web mychart/

正式运行
helm install web1 mychart/
helm list

kubectl get pods,svc | egrep "web1-deploy|web1-svc"


扩容副本
helm upgrade web1 --set replicas=3 mychart/
kubectl get pods | grep "web1-deploy"

回滚
helm history web1 # 查看版本更新记录
helm rollback web1 1

helm包管理工具的更多相关文章
- Helm包管理工具(简介、安装、方法)
认识Helm 每次我们要部署一个应用都需要写一个配置清单(维护一套yaml文件),但是每个环境又不一样.部署一套新的环境成本是真的很高.如果我们能够使用类似于yum的工具来安装我们的应用的话那就太好了 ...
- 使用 Helm 包管理工具简化 Kubernetes 应用部署
当在 Kubernetes 中已经部署很多应用时,后续需要对每个应用的 yaml 文件进行维护操作,这个过程会变的很繁琐,我们可以使用 Helm 来简化这些工作.Helm 是 Kubernetes 的 ...
- k8s包管理工具helm - 介绍和安装
目录 1.Kubernetes 应用部署的挑战 2.Helm 是什么 3.Helm 组件及相关术语 4.Helm 工作原理 5.Helm 安装 5.1 客户端安装 5.2 安装服务端 Tiller 5 ...
- 利用chocolate包管理工具安装helm
在powershell中执行 1 安装choco包管理工具 Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object Sys ...
- Helm:kubernetes应用包管理工具
概要 Helm:kubernetes应用包管理工具 K8s部署应用的时候,应用会通过yaml描述信息调用K8s-api:Helm即是管理这些Yaml的应用包管理工具 组成 Helm包含5个部分 Hel ...
- Kubernetes-17:Kubernets包管理工具—>Helm介绍与使用
Kubernets包管理工具->Helm 什么是Helm? 我们都知道,Linux系统各发行版都有自己的包管理工具,比如Centos的YUM,再如Ubuntu的APT. Kubernetes也有 ...
- k8s的应用包管理工具helm的部署和使用
1.概述 我们一般是在k8s里面部署一些简单的应用,比如用deployment,daemonset,statefuleset的方式来部署应用,但是如果要部署一些复杂的应用,那么整个配置的编写.部署的过 ...
- 云原生之旅 - 5)Kubernetes时代的包管理工具 Helm
前言 上一篇文章 [基础设施即代码 使用 Terraform 创建 Kubernetes] 教会了你如何在Cloud上面建Kubernetes资源,那么本篇来讲一下如何在Kubernetes上面部署应 ...
- Helm包管理
Helm Kubernetes 包管理工具 Helm 可以帮助我们管理 Kubernetes 应用程序 - Helm Charts 可以定义.安装和升级复杂的 Kubernetes 应用程序,Char ...
随机推荐
- 透过UIRoot深入理解NGUI提供的屏幕适配方案
主要代码:UIRoot,UIOrthoCamera,UIRect.GetSides(UIPanel使用UIRect的)里的GetSides,代码量很少,但需要思考和测试验证. 一.UIRoot的基本内 ...
- C++模板函数只能全特化不能偏特化
C++模板函数只能全特化不能偏特化
- Linux—账号管理及命令使用详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 在Linux系统中,我们常常会看到目录或文件的所属关系: [root@linux01 ~]# ll -d test.sh -rw ...
- 跟着尚硅谷系统学习Docker-【day02】
day02-20200714 p9.docker阿里云配置 helloword 拉取镜像-运行- 拉取镜像如果从国外网站拉取辉比较慢,所以需要配置阿里云或者网易云得镜像仓库. 首先 ...
- Sympy解方程-求极限-微分-积分-矩阵运算
简介 Sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值.求极限.解方程.求积分.微分方程.级数展开.矩阵运算等等计算问题.虽然Matlab的类似科学计算能力也很强大 ...
- 给编程小白的java JDK安装教程
对刚开始学习编程的新手朋友们来说,安装开发环境可谓是一件头疼的事了,为了不让刚准备入门java的朋友还没写出自己的Hello World就被安装开发环境劝退,所以本篇文章诞生了. 下载JDK 打开浏览 ...
- Win10 在VM里面装Centos7.4后使用桥接模式连接外网,并用MobaXterm远程虚拟机详细教程
1.首先登陆虚拟机如图 2.执行ping命令看虚拟机里面的centos7是否可以连网 ping www.baiducom 此时会报错:name or service not known 3.设置一个文 ...
- Linux实战(6):Centos8上传镜像
小记 做以下操作之前得准备一个Docker Hub 的账号,然后创建仓库可私有也可公有这得看你自己了,仓库的名称需记住等等会有用. 安装podman podman跟docker使用的命令非常的接近,但 ...
- Node.js 从零开发 web server博客项目[安全]
web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...
- 使用VSCode和CMake构建跨平台的C/C++开发环境
日前在学习制作LearnOpenGL教程的实战项目Breakout游戏时,希望能将这个小游戏开发成跨平台的,支持在多个平台运行.工欲善其事必先利其器,首先需要做的自然是搭建一个舒服的跨平台C/C++开 ...