helm模板

目錄結(jié)構(gòu)

nginx-helm-chart/
├── Chart.yaml
├── values.yaml
└── templates/
    ├── deployment.yaml
    ├── service.yaml
    └── configmap.yaml

文件內(nèi)容

Chart.yaml

apiVersion: v2
name: nginx
description: A Helm chart for Nginx
type: application
version: 0.1.0
appVersion: "1.23.4"  # Nginx版本

values.yaml

replicaCount: 2

image:
  repository: nginx
  tag: "1.23.4"
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 80

resources: 
  limits:
    cpu: "500m"
    memory: "256Mi"
  requests:
    cpu: "250m"
    memory: "128Mi"

config:
  nginxConf: |
    user  nginx;
    worker_processes  auto;
  
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
  
    events {
        worker_connections 1024;
    }
  
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
  
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
  
        access_log  /var/log/nginx/access.log  main;
  
        sendfile        on;
        keepalive_timeout  65;
  
        server {
            listen       80;
            server_name  localhost;
  
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
  
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
        }
    }

ingress:
  enabled: true
  className: "nginx"  # 使用的 IngressClass
  host: "example.com" # 配置你的域名
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
  tls:
    enabled: true
    secretName: "example-com-tls" # 替換為你的 TLS Secret 名稱

configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-nginx-config
  labels:
    app: nginx
    release: {{ .Release.Name }}
data:
  nginx.conf: |
{{ .Values.config.nginxConf | indent 4 }}

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-nginx
  labels:
    app: nginx
    release: {{ .Release.Name }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: nginx
      release: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app: nginx
        release: {{ .Release.Name }}
    spec:
      containers:
        - name: nginx
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          ports:
            - containerPort: 80
          volumeMounts:
            - name: nginx-config
              mountPath: /etc/nginx/nginx.conf
              subPath: nginx.conf
      volumes:
        - name: nginx-config
          configMap:
            name: {{ .Release.Name }}-nginx-config

ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: {{ .Release.Name }}-nginx
  labels:
    app: nginx
    release: {{ .Release.Name }}
  annotations:
    {{- if .Values.ingress.annotations }}
    {{ toYaml .Values.ingress.annotations | indent 4 }}
    {{- end }}
spec:
  ingressClassName: {{ .Values.ingress.className }}
  rules:
    - host: {{ .Values.ingress.host }}
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: {{ .Release.Name }}-nginx
                port:
                  number: {{ .Values.service.port }}
  {{- if .Values.ingress.tls }}
  tls:
    - hosts:
        - {{ .Values.ingress.host }}
      secretName: {{ .Values.ingress.tls.secretName }}
  {{- end }}

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}-nginx
  labels:
    app: nginx
    release: {{ .Release.Name }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: 80
  selector:
    app: nginx
    release: {{ .Release.Name }}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末燕垃,一起剝皮案震驚了整個濱河市曙咽,隨后出現(xiàn)的幾起案子躲胳,更是在濱河造成了極大的恐慌糠排,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冤荆,死亡現(xiàn)場離奇詭異辽话,居然都是意外死亡,警方通過查閱死者的電腦和手機帆喇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門警医,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坯钦,你說我怎么就攤上這事预皇。” “怎么了婉刀?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵吟温,是天一觀的道長。 經(jīng)常有香客問我突颊,道長鲁豪,這世上最難降的妖魔是什么潘悼? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮爬橡,結(jié)果婚禮上治唤,老公的妹妹穿的比我還像新娘。我一直安慰自己糙申,他們只是感情好宾添,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著郭宝,像睡著了一般辞槐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粘室,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天榄檬,我揣著相機與錄音,去河邊找鬼衔统。 笑死鹿榜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的锦爵。 我是一名探鬼主播舱殿,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼险掀!你這毒婦竟也來了沪袭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤樟氢,失蹤者是張志新(化名)和其女友劉穎冈绊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埠啃,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡死宣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碴开。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毅该。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖潦牛,靈堂內(nèi)的尸體忽然破棺而出眶掌,到底是詐尸還是另有隱情,我是刑警寧澤巴碗,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布朴爬,位于F島的核電站,受9級特大地震影響良价,放射性物質(zhì)發(fā)生泄漏寝殴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一明垢、第九天 我趴在偏房一處隱蔽的房頂上張望蚣常。 院中可真熱鬧,春花似錦痊银、人聲如沸抵蚊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贞绳。三九已至,卻和暖如春致稀,著一層夾襖步出監(jiān)牢的瞬間冈闭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工抖单, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留萎攒,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓矛绘,卻偏偏與公主長得像耍休,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子货矮,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容