Kubernetes YAMLフォーマッター&バリデーター
ガイド
Kubernetes YAMLフォーマッター&バリデーター
KubernetesマニフェストYAMLファイルをブラウザで即座にフォーマットおよび検証します。Deployments、Services、ConfigMaps、Ingress、CronJobsなど、任意のK8sマニフェストを貼り付けると、一貫した2スペースインデント、オプションのキーソート、および19のKubernetesリソースタイプに対するスキーマ検証が行われます。必須フィールドの欠落、非推奨のapiVersion、セレクター/ラベルの不一致、構造エラーなどを、行番号付きの明確な注釈で検出します。
使用方法
Kubernetes YAMLマニフェストを入力エリアに貼り付けるか、組み込みの例のいずれかを読み込みます。ツールはリソースの種類を自動的に検出し、適切なスキーマに対して検証します。で区切られた複数ドキュメントのマニフェストもサポートされています—各ドキュメントは個別に検証されます。キーソートを切り替え、フォーマットのみか完全な検証かを選択し、クリーンな出力をクリップボードにコピーできます。 --- はサポートされています — 各ドキュメントは個別に検証されます。キーソートの切り替え、フォーマットのみか完全な検証かの選択、そしてクリーンな出力をクリップボードにコピーすることができます。
機能
- 19のリソースタイプ – Deployment、Service、ConfigMap、Secret、Ingress、Pod、StatefulSet、DaemonSet、Job、CronJob、HPA、PVC、PV、Namespace、ServiceAccount、Role、RoleBinding、ClusterRole、ClusterRoleBindingを検証します
- スキーマ検証 – 各リソースタイプに対して、必須フィールド、有効なapiVersion、正しいspec構造、およびタイプ制約をチェックします
- 非推奨APIの検出 – のような非推奨のapiVersionをフラグ付けします
extensions/v1beta1正しい置換を提案します - セレクター/ラベルのマッチング – DeploymentおよびStatefulSetのセレクターがPodテンプレートラベルと一致することを確認します
- 複数ドキュメントのサポート – 複数の
---で区切られたドキュメントを持つYAMLファイルを処理し、それぞれを個別に検証します - Consistent Formatting – オプションのアルファベット順キーソートで、クリーンな2スペースインデントを適用します
- 行番号付きのエラー – 検証エラーと警告には、迅速な特定のために行番号が含まれます
- マニフェストの例 – サンプルDeployment、Service、または複数ドキュメントのマニフェストを読み込んで、ツールの動作を確認します
よくある質問
-
一般的なKubernetes YAMLのミスは何ですか?
最も頻繁なエラーには、非推奨のapiVersion(Deploymentsのapps/v1の代わりにextensions/v1beta1など)の使用、metadata.nameやspec.containersなどの必須フィールドの忘れ、Deployment spec.selector.matchLabelsとPodテンプレートのmetadata.labelsの不一致、フィールドが誤ったレベルで解析される原因となるインデントの誤り、ポートやレプリカで整数が期待される場所での文字列などのフィールドタイプの誤用が含まれます。
-
apiVersion apps/v1とextensions/v1beta1の違いは何ですか?
extensions/v1beta1 apiVersionは、初期のKubernetesバージョンでのDeployments、DaemonSets、ReplicaSetsの元のAPIグループでした。Kubernetes 1.16で非推奨となり、1.22でapps/v1に置き換えられました。apps/v1は安定したAPIグループです。同様に、networking.k8s.io/v1はIngressリソースのextensions/v1beta1に取って代わりました。本番マニフェストでは常に安定したAPIバージョンを使用してください。
-
Kubernetesでは、複数ドキュメントのYAMLファイルはどのように機能しますか?
Kubernetesは、3つのダッシュ(---)のみを含む行で区切ることにより、単一のYAMLファイルで複数のリソース定義をサポートします。kubectl apply -fで複数ドキュメントファイルを適用すると、Kubernetesは各リソースを個別に作成または更新します。これは、管理を容易にするために、DeploymentとそのServiceのような関連リソースを1つのファイルにバンドルするためによく使用されます。
-
Deploymentセレクターは、Podテンプレートラベルと一致する必要がありますか?
Deploymentは、spec.selector.matchLabelsを使用して、どのPodを管理するかを識別します。spec.template.metadata.labelsの下のPodテンプレートには、セレクターで指定されたすべてのラベルが含まれている必要があります。一致しない場合、DeploymentコントローラーはPodを見つけることができず、Kubernetesは検証エラーでマニフェストを拒否します。このセレクターメカニズムは、Kubernetesが高レベルコントローラーを管理対象のPodに接続する方法です。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
