您的位置 首页 linux 运维

创建一个自己的Chart (注入HELM灵魂)

helm 汇总 : 连接

创建一个自己的Chart

1、创建一个模板

mkdir mycharts
helm create myapp

Chart.yaml: 是描述 chart包的相关信息

charts:  当前chart 是不是需要依赖其他的chart 都放在这里

tmpplates:  资源清单文件

values.yaml : 从资源清单中选出的用户可以修改的一些字段。

 

 

2、删除不用的文件

rm -rf templates/*
rm -rf values.yaml

3、编写 template 下的 service 和 deployment 资源清单

vi templates/nodePort.yaml

内容如下

apiVersion: v1
kind: Service
metadata:
  labels:
    app: myapp-test
  name: myapp-test-20260123-svc
spec:
  ports:
    - name: 8080-80
      port: 8080
      protocol: TCP
      targetPort: 8080
      nodePort: 31111
  selector:
    app: myapp-test
  type: NodePort

 

vi templates/deployment.yaml

内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: myapp-test
  name: myapp-test-20260123-deploy
spec:
  replicas: 5
  selector:
    matchLabels:
      app: myapp-test
  template:
    metadata:
      labels:
        app: myapp-test
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/baimeidashu/myspring:v1.0
          name: myapp

 

然后就是 chart.yaml 文件, 里边的版本号自己可以看着来改。

我这里演示,先不做修改了。

4.发布部署

helm  install myapp myapp/

 

 

访问服务:

http://10.0.0.101:31111/

 

 

注入HELM灵魂

动态注入一些数据

就是动态获取 values.yaml 的文件中的配置信息,类似.evn文件

1、这是一个测试的 myapp chart

2、myapp release 名字:myapp-test-{{ now | date "20060102030405" }}-deploy

3、service 名字:myapp-test-{{ now | date "20060102030405" }}-svc


我们测试一下:

首先



helm create dongtai-myapp/
cd dongtai-myapp

rm -rf templates/*
 

 

创建一个文件

 vi templates/NOTES.txt

 

内容如下:

1、这是一个测试的 myapp chart

2、myapp release 名字:myapp-test-{{ now | date "20060102030405" }}-deploy

3、service 名字:myapp-test-{{ now | date "20060102030405" }}-svc

 

然后:

vi templates/deployment.yaml

内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: myapp-test
  name: myapp-test-{{ now | date "20060102030405" }}-deploy
spec:
  replicas: {{ .Values.replicaCount }}  # 修复此处
  selector:
    matchLabels:
      app: myapp-test
  template:
    metadata:
      labels:
        app: myapp-test
    spec:
      containers:
        - image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
          name: myapp

 

然后

vi templates/service.yaml

 

内容如下:

apiVersion: v1
kind: Service
metadata:
 labels:
  app: myapp-test
 name: myapp-test-{{ now | date "20060102030405" }}-svc
spec:
 ports:
 - name: 80-80
   port: 8080
   protocol: TCP
   targetPort: 8080
    {{- if eq .Values.service.type "NodePort" }}
   nodePort: {{.Values.service.nodeport }}
    {{- end }}
 selector:
  app: myapp-test
 type: {{ .Values.service.type | quote }}

 

然后:

vi values.yaml

内容如下:

replicaCount: 5
image:
 repository: registry.cn-hangzhou.aliyuncs.com/baimeidashu/myspring
 tag: "v1.0"
service:
 type: NodePort
 nodeport: 31111

 

然后执行:

helm install myapp dongtai-myapp/

#也可以指定 values.yaml文件:

helm install myapp dongtai-myapp/ -f dongtai-myapp/values.yaml 

 

 

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章