# 删除以前建立的 chart helm list helm delete --purge redis1 # 建立自定义 chart myapp cd ~/helm helm create myapp cd myapp/ # 修改 Chart.yaml cat Chart.yaml apiVersion: v1 appVersion: "1.0" description: A Helm chart for Kubernetes myapp chart name: myapp version: 0.0.1 maintainer: - name: klvchen email: klvchen@126.com url: http://www.klvchen.com # 修改 values.yaml cat values.yaml # Default values for myapp. # This is a YAML-formatted file. # Declare variables to be passed into your templates. replicaCount: 2 image: repository: ikubernetes/myapp tag: v1 pullPolicy: IfNotPresent service: type: ClusterIP port: 80 targetPort: 80 ingress: enabled: false annotations: kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: "true" path: / hosts: - chart-example.local tls: [] # - secretName: chart-example-tls # hosts: # - chart-example.local resources: # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little # resources, such as Minikube. If you do want to specify resources, uncomment the following # lines, adjust them as necessary, and remove the curly braces after 'resources:'. limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi nodeSelector: {} tolerations: [] affinity: {} # 测试打包 cd .. helm lint ./myapp helm package myapp/ # 建立代理,注意这里须要在 myapp-0.0.1.tgz 同级上执行,这里会启动一个web服务,端口为 8879 helm serve # 新开一个终端,安装 helm install --name myapp1 local/myapp # 测试,访问 ClusterIP curl 10.102.91.53 #运行结果,正常: Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a> # 查看 myapp1 的状态 helm status myapp1