helm 使用自定义chart发布应用

1 准备一组yaml文件

如下准备两个资源编排文件,nginx的deploy文件和nginx的service文件

生成 web-deploy.yaml

[root@localhost helm]# kubectl create deploy web --image=nginx -o yaml --dry-run > web-deploy.yaml
W0603 16:49:58.666722   22490 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client.
[root@localhost helm]# ll
总用量 4
-rw-r--r--. 1 root root 376 6月   3 16:49 web-deploy.yaml
[root@localhost helm]# cat web-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: web
  name: web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web
    spec:
      containers:
      - image: nginx
        name: nginx
        resources: {}
status: {}

生成 web-service.yaml

[root@localhost helm]# kubectl expose deploy web --port=80 --target-port=80 --type=NodePort -o yaml --dry-run > web-service.yaml
W0603 16:53:08.027380   23080 helpers.go:535] --dry-run is deprecated and can be replaced with --dry-run=client.
[root@localhost helm]# ll
总用量 8
-rw-r--r--. 1 root root 376 6月   3 16:49 web-deploy.yaml
-rw-r--r--. 1 root root 234 6月   3 16:53 web-service.yaml
[root@localhost helm]# cat web-service.yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: web
  name: web
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: web
  type: NodePort
status:
  loadBalancer: {}
# 删除deploy 以便测试chart部署web应用
[root@localhost helm]# kubectl delete deploy web
deployment.apps "web" deleted

2 创建自定义chart

# 创建自定义chart后生成mychart目录,在mychart目录下的文件:
# charts 存放依赖的chart
# Chart.yaml 存放自定义chart的描述属性
# templates 存放自己打包的一组yaml文件(前面生成的两个yaml文件就是放这里)
# values.yaml 是全局变量配置文件

[root@localhost helm]# helm create mychart
Creating mychart
[root@localhost helm]# ls
mychart  web-deploy.yaml  web-service.yaml
[root@localhost helm]# cd mychart
[root@localhost mychart]# ls
charts  Chart.yaml  templates  values.yaml


# 清空templates中的默认文件
 rm -rf templates/*

# 把创建的一组yaml文件移到到templates中
[root@localhost helm]# ls
mychart  web-deploy.yaml  web-service.yaml
[root@localhost helm]# cp web-*.yaml mychart/templates/

3 安装自定义的chart

[root@localhost helm]# helm install web-helm mychart/
NAME: web-helm
LAST DEPLOYED: Thu Jun  3 17:08:07 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

# 查看部署的应用
[root@localhost helm]# helm list
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERS
web-chart       default         1               2021-06-03 17:06:11.924500118 +0800 CST failed          mychart-0.1.0   1.16.0
web-chart1      default         1               2021-06-03 17:06:39.808945244 +0800 CST failed          mychart-0.1.0   1.16.0
web-helm        default         1               2021-06-03 17:08:07.348163084 +0800 CST deployed        mychart-0.1.0   1.16.0

# 查看应用状态
[root@localhost helm]# helm status web-helm
NAME: web-helm
LAST DEPLOYED: Thu Jun  3 17:08:07 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None



# 查看web服务 出现web service说明部署成功
[root@localhost helm]# kubectl get svc
# 基于应用的版本升级
当对yaml文件修改后,则需要upgrade进行应用级的版本升级

[root@localhost helm]# helm upgrade web-helm mychart/
Release "web-helm" has been upgraded. Happy Helming!
NAME: web-helm
LAST DEPLOYED: Thu Jun  3 17:21:09 2021
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值