生の kubectl apply が抱える問題
YAML ファイルを何十個も手作業で管理する方法が、規模の拡大で破綻する理由を学びます。
「生の kubectl apply が抱える問題」はCoddyKit上の無料Helm Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHelm Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Helm Academyコースには全4レッスンが含まれています。
1つのアプリ、多数のファイル
1つのKubernetesアプリを、1ファイルだけで構成できることはほとんどありません。通常はDeployment、Service、ConfigMapなどが必要で、それぞれを独自のYAMLファイルに記述します。
手作業で適用する
生のKubernetesでは、各マニフェストに対してkubectl applyを実行します。ファイルが3つあれば、覚えて順番に実行するコマンドも3つ必要です。
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl apply -f configmap.yamlフォルダーは役立つが、十分ではない
フォルダー全体を一度に適用することはできます。便利ではありますが、それでも各ファイルは共通の識別情報を持たない、ばらばらで無関係なオブジェクトとして扱われます。📁
kubectl apply -f ./manifests/コピー&ペーストの問題
開発環境と本番環境で同じアプリが必要になったら、すべてのファイルをコピーし、それぞれのファイルでイメージタグ、レプリカ数、ホストを手作業で編集します。
ドリフトが入り込む
何度か編集すると、開発環境と本番環境は気付かないうちに乖離します。この見えにくいドリフトこそ、原因の分かりにくく再現も難しいバグが潜みやすい場所です。🐛
共通のバージョン番号がない
生のマニフェストには共通のバージョンがありません。1つの番号を示して、現在実行されているファイル一式を正確に説明することはできません。
アンインストールは手作業
アプリをきれいに削除するには、各リソースを自分で削除しなければなりません。ConfigMapを1つ忘れると、クラスター内に孤立した不要物として残り続けます。
kubectl delete -f deployment.yaml
kubectl delete -f service.yamlロールバックは危険を伴う
デプロイに失敗すると、古いYAMLを求めてGitの履歴を慌ててたどることになります。通常のkubectlには、ワンステップで実行できるロールバックボタンはありません。
あらゆる場所で繰り返しが発生する
同じラベルや名前を複数のファイルで入力し直すことになります。selectorの小さな typo 1つで、ServiceがPodを見つけられなくなっても、気付かないことがあります。
手作業では規模に対応できない
アプリが1つなら手作業でも問題ありません。しかし、3つの環境にまたがる20個のマイクロサービスともなると、YAMLのやりくりは、常に手を取られるミスの起きやすい作業になります。
本当に欲しいもの
アプリを1つの単位として、1つのコマンドでインストール、バージョン管理、設定、削除したいはずです。Helmは、まさにこの課題を解決します。🎯
クイックチェック
生のマニフェストを多数、手作業で管理することから生じる問題はどれですか。
まとめ
生のkubectl applyでは、アプリが多数のファイルに分散し、バージョン管理がなく、ドリフトが起きやすく、クリーンアップも手作業になります。Helmが存在する理由は、まさにこのつらさを解消するためです。✅
よくある質問
「生の kubectl apply が抱える問題」レッスンは無料ですか?
はい。「生の kubectl apply が抱える問題」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Helm Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Helm Academyコースには全4レッスンが含まれています。
「生の kubectl apply が抱える問題」で何を学びますか?
YAML ファイルを何十個も手作業で管理する方法が、規模の拡大で破綻する理由を学びます。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Helm Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのHelm Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「生の kubectl apply が抱える問題」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このHelm Academyレッスンでコードを書いて実行できますか?
はい。すべてのHelm Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 生の kubectl apply が抱える問題
- Kubernetes における apt/yum としての Helm
- Chart、Release、Repository の概要
- Helm 3 と Helm 2:Tiller は不要