ReleaseとはChartのインスタンスである。…と公式に書いてある。
A Release is an instance of a chart running in a Kubernetes cluster.
つまり、Chart内のテンプレートが実行されてKubernetesマニフェストとして内容が確定し、
それがインストールされることでクラスターに生成されたリソース群。
狭義にはRelease構造体のデータが保存されたSecretやConfigMapのこと。
failed
ステータスだとこのように言われて upgrade
が成功しなくなる。 failed
になったりする。 helm uninstall release-name
(v2の delete --purge
)してから、 upgrade --install
やり直す。 kubectl edit secret sh.helm.release.v1.app-name.v123
status=failed
となっているラベルを deployed
に変える。 kubectl edit secret sh.helm.release.v1.app-name.v122
status=failed
となっているラベルを superseded
に変える。 upgrade
をやり直す。Helm | How to migrate from Helm v2 to Helm v3
自分のPC上のHelm
まずはv3をダウンロード https://github.com/helm/helm/releases
自分の環境で、v2はここにある。
v3はhelm3
として同じ場所に設置する。
#下書き
status
Helmの"Release"
Release Secretのdataには、Release構造体にUnmarshal可能なJSONが[gzip圧縮され https://github.com/helm/helm/blo
実運用には #Helm でインストールするのがおすすめだと思う。
Installing Linkerd with Helm | Linkerd
環境によらず必ずユーザー側で指定しなければならないvalue(必須だがデフォルト値が提供されていないvalue)は
identityTrustAnchorsPEM
生マニフェストで管理してたのをHelmに移行したいときに、たまに必要になる
例:Namespaceをマニフェストから作ってた
namespace.yaml
に同じようなNamespaceをたくさん詰めていた
例:Ingressをマニフェストから作ってた
#Helm #Kubernetes
https://github.com/helm/helm/blob/bfc575dec2f6ed5ce897c38d0d89b0fe936606c0/pkg/action/upgrade.go#L317
https://github.com/helm/helm/blob/f5ef87b96e791ca9971231699fc5af687f748bae/pkg/kube/client.go#L197
作成→変更→削除
helm-secretsは、Helmのプラグイン。
https://github.com/futuresimple/helm-secretsこっちは非推奨になった
https://github.com/jkroepke/helm-secrets
A current version of the plugin using Golang sops as backend
バックエンドとしてsopsを使用しています、とのこと。
このアイデア、つまり、
「Service
のselector
を制御することでBlue/Green Deploymentを実現する」
のならば、Argo Rollouts導入検討時メモを使用する方がチャートが読みやすくなり、CircleCIのジョブも読みやすくかつバグりにくい。
Argo Rolloutsの運用負荷よりも、上記メリットの方が十分大きい。
履歴
helm history [release name]
戻す
helm rollback [release name] [revision number]
#Helm #Kubernetes #コマンドメモ
#Helm の仕組み
tillerというアプリケーションのPodがクラスターで稼働
helmはtillerにリクエストを投げ、tillerがAPIサーバーにリクエストしてリソースを操作
helmがtillerにリクエストするとき、内部でkubectl port-forward
する
tillerをクラスターで動かすとなにが嫌なのか
--set
, --set-file
, --set-string
, --values(-f)
オプションの有無により、デフォルトで--reuse-values
か--reset-values
が有効になる。
--set
, --set-file
, --set-string
, --values(-f)
あり
--reset-values
が有効になる。
--set
, --set-file
, --set-string
, --values(-f)
なし
Chartというのは、
関連するKubernetesリソースの集合を記述するファイルの集まり
のこと。
「 #Kubernetes リソースを記述するファイル」=いわゆるマニフェスト
#Helm は「パッケージ管理ツール」であると言われるが、
2019/11/13 v3リリース https://github.com/helm/helm/releases
v3はtillerがはじめから存在しない。
関連 Helm(v2)のセキュリティについて
クラスター上でtillerを動作させることを避け、
Kubernetesがコンテナイメージのダウンロードに失敗する原因を探る - Oct Tech Blog
体裁を整えて記事にした
#Kubernetes #EKS
#TroubleShooting
#翻訳
原文: Argo CD v2.2 release candidate. It is time for the next Argo CD… | by Alexander Matyushentsev | Nov, 2021 | Argo Project
次のArgo CDリリースの時間です! Argo CD v2.2には、73人の寄稿者からの207のコミットが含まれています。これには、3つの主要な新機能に加えて、数十のバグ修正、使いやすさ、パフォーマンスの向上が含まれます。詳細については、以下をお読みください。
#翻訳
https://wbhegedus.me/understanding-kubernetes-cpu-limits/
最近、Wordpress Web サイトの定期的なセキュリティ スキャン中に CPU 使用率が高くなり、応答の遅さやエラーの増加、その他の望ましくない結果などの問題を引き起こしていることについて調査を行っています。 これは通常、単一のポッド (スキャナーがランダムにルーティングされるポッド) に限定されますが、それでもユーザーに表示される (および Pagerduty をアクティブ化する 😅
https://github.com/kubernetes-sigs/aws-load-balancer-controller/issues/1650#issuecomment-730065903
groupNameの変更(groupNameの追加を含む)は、破壊的なアクションと見なされます。 コントローラは、古いALB / TGを削除する前に、新しいALB / TGが完全に機能するのを待ちません。 (これは、このコントローラーの制御の及ばない外部DNS cname更新などがあるため、常に当てはまります)。
Kubernetes RBAC Port Forward | ManagedKube
この通りでもport-forwardできはするが、pods
のcreate
は取り上げても問題ない。
Serviceを指定してport-forwardコマンドを実行するには、services
をget
できるようにする必要がある。
https://buoyant.io/linkerd-runbook#monitoring-linkerds-health
Monitoring Linkerd’s health is best done by monitoring the success rate and latency of its control plane components.
Linkerdの状態の監視は、コントロールプレーンコンポーネントの成功率と遅延を監視することによって行うのが最適です。
Missing newer kubernetes schemas (example: 1.19) · Issue #26 · instrumenta/kubernetes-json-schema
こっちのリポジトリで更新されている
https://github.com/yannh/kubernetes-json-schema
#Kubernetes #コマンドメモ
kubernetes-sigs/descheduler: Descheduler for Kubernetes
難しいことは考えず、とにかく、今、1回だけやりたい
JobがCompleteしたら消す
#Kubernetes
必要に応じて-l
でノードを限定したり
--delete-local-data
付ける
#Kubernetes
https://argoproj.github.io/argo-rollouts/
Argo Rolloutsは、KubernetesコントローラーとCRDのセットであり、青緑、カナリア、実験、Kubernetesへのプログレッシブ配信機能などの高度なデプロイ戦略を提供します。 Rolloutカスタムリソースは、追加のデプロイメント戦略を備えたデプロイメントリソースと同等の機能を提供します。
1人運用を支えるAmazon EKSノウハウ / Amazon EKS Know-How - Speaker Deck
#Kubernetes
編集する気がないのでリポジトリに丸々コピーしてきて保管するのも面倒だ、
みたいなアプリケーションのバージョン管理とapplyだけを行う
こんな感じにファイルを置く
このDockerfileをDependabotに監視させて更新通知させる。
Kubernetes Serviceを呼ぶ
ServiceはClusterIP
Linkerdのサンプルアプリ
https://github.com/linkerd/website/blob/6bf37bf53d7a43d05098d40c8a04ef5aaa0c958b/run.linkerd.io/public/emojivoto.yml#L207
https://github.com/BuoyantIO/booksapp/blob/6132015148d49f0ca6c058f525508f5a2e59d8b4/booksapp.yml#L44