当前位置: 首页 > news >正文

Kubernetes14:Helm为了部署像微服务这种的大型项目

Kubernetes14:Helm介绍(为了部署像微服务这种的大型项目)

1、Helm的引入

(1)之前方式部署应用基本过程

编写yaml文件
  • 1、deployment
kubectl create deployment nginx --image=nginx --dry=run -o yaml > nginx.yaml
  • 2、Service
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort
  • 3、Ingress
如果使用之前方式部署单一应用,少数服务的应用,比较合适
部署微服务项目,可能有几十个服务,每个服务都有一套yaml文件,需要维护大量的yaml文件,版本管理特别不方便

2、使用helm可以解决哪些问题?

(1)使用helm可以把这些yaml文件作为一个整体管理

(2)实现yaml高效复用

(3)实现应用级别的版本管理

3、Helm介绍

Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。

Helm有3个重要概念:

(1)helm:一个命令行客户端工具,主要用于Kubernetes应用chart的创建、打包、发 布和管理。
(2)Chart:应用描述,一系列用于描述k8s资源相关文件的集合。
(3)Release:基于Chart的部署实体,一个chart被Helm运行后将会生成对应的一个 release;将在k8s中创建出真实运行的资源对象。

4、He1m三个重要概念

(1)helm 是一个命令行客户端工具

(2)chart 把yaml打包,是yaml集合

(3)Release 基于chart部署实体,应角级别的版本管理

5、he1m在2019年发布V3版本,和之前版本相比有变化

(1)V3 版本删除Tiller

(2)release 可以在不同命名空间重用

(3)将chart推送到docker镜像仓库中

6、helm架构变化

请添加图片描述
请添加图片描述

安装和配置仓库

1、helm安装

官网下载:
helm.sh请添加图片描述

第一步 下载helm安装压缩文件,上传到1iunx系统中
第二步 解压helm压缩文件,把解压之后helm目录复制到 usr/bin目录下

请添加图片描述

2、配置helm仓库

(1)添加仓库

helm repo add 仓库名 仓库地址请添加图片描述

helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add allyun https://kubernetes.oss-cn-hangzhou.allyuncs.com/charts
helm repo list

可以加两个仓库,但没必要
请添加图片描述

(2)更新仓库

helm repo update

请添加图片描述

(3)删除仓库

helm repo remove aliyun

3、使用helm快速部署应用

第一步、使用命令搜索应用

helm search repo 名称(weave)
请添加图片描述

第二步、 根据搜索内容,选择安装

helm install 安装之后名称 搜索之后应用名称
请添加图片描述

查看安装之后状态

helm list
请添加图片描述

helm status 安装之后名称

请添加图片描述

已经创建好了pods和svc

请添加图片描述

但是没有对外暴露端口
修改service的yaml文件,type改为NodePort

kubectl edit svc ui-weave-scope
修改 请添加图片描述

请添加图片描述

kubectl get svc

请添加图片描述

如何自己创建Chart

1、使用命令创建chart


helm create mychart

请添加图片描述

进入文件夹

请添加图片描述
请添加图片描述

2、在templates.文件夹创建两个yaml文件

先试用 rm -rf * 命令删除该文件中所以的示例文件

deployment.yaml

kubectl create deployment web1 --image=nginx --dry-run -o yaml > deployment.yaml

service.yaml

kubectl create deployment web1 --image=nginx为了获取下边的yaml文件需要先将web1真实的创建出来,获取到service.yaml之后再删除(非通用方法)

kubectl expose deployment web1 --port=80 --target-port=80 --type=NodePort --dry-run -o yaml > service.yaml

kubectl delete deployment web1

请添加图片描述

3、安装mychart

helm install web1 mychart/
请添加图片描述

4、应用升级-----helm upgrade chart名称

helm upgrade webl mychart/
请添加图片描述

实现yaml高效复用

通过传递参数, 动态渲染模板,yam1内容 动态传入参数生成

请添加图片描述

在chart有values.Iyaml文件, 定义yaml文件全局变量

1、在value.yaml文件中定义变量和值

2、在具体的yaml文件,获取定义变量值

特点:yaml文件大体有几个地方不同的

Image
tag
label
port
replicas

第一步、在values.yaml定义变量和值

请添加图片描述

第二步、在templates的yaml文件使用values.yaml定义变量

请添加图片描述

deplyoment.yaml

请添加图片描述

service.yaml

请添加图片描述

helm install --dry-run web2 mychart/
helm install web2 mychart/

请添加图片描述

http://www.lryc.cn/news/36482.html

相关文章:

  • 2.3操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则
  • 设计模式3——结构型模式
  • css——图片缩放,拉伸,变形的解决办法
  • 【工具使用】STM32CubeMX-基础使用篇
  • 面试题解-理解cookie、session和token
  • Buuctf [GUET-CTF2019]number_game 题解
  • OsgEarth配置.earth文件支持wms服务
  • 【数据结构】详解空间复杂度
  • 腾讯云GPU游戏服务器/云主机租用配置价格表
  • 配置临时SSL子域名泛化证书
  • 【Linux:环境变量的理解】
  • python数据类型与数据结构
  • 大数据自学学习技巧?
  • Qt音视频开发22-音频播放QAudioOutput
  • JavaEE简单示例——Spring的入门程序
  • 【嵌入式Bluetooth应用开发笔记】第一篇:DBUS概述与蓝牙开发小试牛刀
  • 如何在电脑更换新硬盘后迁移window11系统?2种迁移方法分享!
  • 6、Elasticsearch优化
  • 给力|这是一个专业的开源快速开发框架!
  • CIMCAI smart shipping company product container damage identify
  • ego微商小程序项目-接口测试
  • excel文件已经损坏怎么办
  • Java【数据结构入门OJ题33道】——力扣刷题记录1
  • Spring事务介绍
  • Intellij Idea如何使用VM
  • 基础04-什么时候不能使用箭头函数
  • 算法小抄5-原地哈希
  • java零基础入门(1)
  • java socket实例
  • 计算机中信息的表示和处理 整数和小数的二进制表示