hui Kubernetes aaS mai Mail.ruunuhi ʻōlelo pōkole e pili ana i ka hana ʻana i nā mea huna Helm i ka wā e hoʻohou ana. ʻO ka mea aʻe kahi kikokikona mai ka mea kākau o ka ʻatikala - ka luna ʻenehana o Intoware, kahi hui e hoʻomohala ana i nā hopena SaaS.
He ʻoluʻolu nā pahu. I ka wā mua he anti-container wau (hilahila wau i ka ʻae ʻana), akā i kēia manawa ke kākoʻo piha nei au i ka hoʻohana ʻana i kēia ʻenehana. Inā ʻoe e heluhelu ana i kēia, manaʻolana ʻoe ua holo kūleʻa i nā kai o Docker, ʻike i nā pono o Kubernetes, a ua maʻalahi kou ola me Helm.
Eia naʻe, ʻoi aku ka paʻakikī o kekahi mau mea ma mua o ka mea e pono ai.
Pehea e hoʻopuka ai i nā mea huna i ka wā e hoʻonui ai?
ʻO kahi huna Kubernetes kahi kumu waiwai i loaʻa nā kī/waiwai paʻa āu e makemake ai e hoʻohana i kāu code. ʻO kēia paha nā kaula pili waihona, nā ʻōlelo huna leka uila, a pēlā aku. Ma ka hoʻohana ʻana i nā mea huna, hana ʻoe i kahi kaʻawale ʻokoʻa ma waena o nā code a me nā hoʻonohonoho, e ʻae iā ʻoe e hana maʻalahi i nā deployments like ʻole me ka hoʻololi ʻole i ka codebase.
ʻO kahi kūlana maʻamau ke kamaʻilio ʻelua modula me ke kī maʻamau. ʻAʻohe mea ma waho o ka pūʻulu e ʻike i kēia kī, no ka mea, ua manaʻo ʻia ia no ke kamaʻilio pākahi a me hoʻokahi i loko o ka hui.
Ka hana huna
ʻO ka maʻamau, no ka hana ʻana i kahi huna ma Helm pono ʻoe e:
wehewehe i ka mea huna i loko o ka waihona waiwai;
He mea huna Kubernetes maʻalahi e hoʻohana ana i nā waiwai mai values.yml
Akā e ʻōlelo mākou ʻaʻole makemake ʻoe e wehewehe i kāu mea huna i ka faila waiwai.
Nui nā koho i ka wā e pono ai ka hoʻolālā ʻana i kahi kī kaʻana like, pono e hana ʻia i ka wā o ke kau ʻana.
Ma ka laʻana kamaʻilio module-to-module ma luna, ʻaʻole makemake ʻia e kaʻana like i ka mea huna ma waho o ka waiho ʻana. No laila, makemake nui ʻia e loaʻa iā Helm nā mīkini e hoʻopuka maʻalahi i kahi huna me ka ʻole e kuhikuhi pololei.
Hooki
Hāʻawi nā Hooks iā ʻoe e holo code ma nā wahi kikoʻī i ka wā o ke kaʻina hana. Aia paha kahi hana hoʻonohonoho pono e holo ma hope o ka hoʻokomo mua ʻana, a i ʻole pono e hoʻomaʻemaʻe ʻia ma mua o ka hana ʻana i kekahi mea hou.
No ka hoʻoponopono ʻana i kā mākou pilikia o ka hoʻohui ʻana i kahi kī i hana ʻia i ka wā o ka hoʻokomo ʻana, kūpono nā makau hoʻokomo mua. Akā aia kahi hopu: ʻaʻole hiki iā ʻoe ke hoʻopuka maʻalahi i ka mea huna i hoʻokahi manawa ma kahi hōʻano hou. E hana nā Hooks i kēlā me kēia mea hou.
Inā ua hana ʻoe i kāu mea huna a ʻaʻole i hoʻokō ʻia kāu hoʻokomo mua ʻana a laila hoʻōki i ka heluhelu ʻana, e hana maikaʻi ka makau pre-install iā ʻoe.
Akā inā he ʻāpana o ka mea huna i kahi mea hou (malia paha he hiʻohiʻona hou ʻaʻole i laila i ka wā o ka hoʻokomo ʻana), a laila hilahila ʻaʻole hiki iā ʻoe ke hana i kahi hook pre-installation e hana hoʻokahi wale nō.
Nā hana
Hāʻawi nā hana Helm iā ʻoe e hoʻohui i nā mea kikoʻī like ʻole i kāu mau palapala hoʻolālā.
apiVersion: v1
kind: Secret
metadata:
name: my-super-awesome-api-key
type: Opaque
stringData:
apiKey: {{ uuidv4 | quote }} #Generate a new UUID and quote it
Hōʻike kēia hiʻohiʻona i ka waiwai o ka mea huna apiKey ʻo ia ka UUID hou i hana ʻia i ka wā hoʻokomo.
Loaʻa i ka Helm kahi waihona hiʻohiʻona nui maoli e hoʻohana i nā hiʻohiʻona kāhāhā GO a me ka hale waihona hiʻohiʻona o Sprig e hana i nā hoʻolālā maʻamau.
Hana huli
Hoʻohui ʻia i ka Helm 3.1 Hana huli, ka mea e hiki ai iā ʻoe ke noi i kahi hoʻolālā e kū nei a:
e nānā i ke ola o nā kumuwaiwai;
e hoʻihoʻi i ka waiwai o kahi kumuwaiwai e hoʻohana ai ma hope.
Me ka hoʻohana ʻana i kēia mau mana ʻelua, hiki iā mākou ke hana i kahi mea huna hoʻokahi manawa i hana ʻia me ka ikaika!
# 1. Запросить существование секрета и вернуть в переменной $secret
{{- $secret := (lookup "v1" "Secret" .Release.Namespace "some-awesome-secret" -}}
apiVersion: v1
kind: Secret
metadata:
name: some-awesome-secret
type: Opaque
# 2. Если секрет существует, взять его значение как apiKey (секрет использует кодирование Base64, так что используйте ключ "data")
{{ if $secret -}}
data:
apiKey: {{ $secret.data.apiKey }}
# 3. Если секрет не существует — создать его (в этот раз используйте "stringData", так как будет обычное значение)!
{{ else -}}
stringData:
apiKey: {{ uuidv4 | quote }}
{{ end }}
Ke hoʻohana ʻia kahi mea hou i ke kikowaena, e hoʻopuka ʻo Helm i kahi waiwai huna hou (inā ʻaʻohe mea huna) a i ʻole e hoʻohana hou i ka waiwai i loaʻa.