コンテナとオーケストレーション
Kubernetes: オーケストレーター、正直に議論する
Kubernetes は、インフラストラクチャのデフォルトの大規模システム基盤となるコンテナ オーケストレーターです。デプロイ、サービス、イングレス、Persistent Volume、および望ましい状態を記述する API です。それも巨大です。 Kubernetes に関する正直な記事は、Kubernetes を使用しない場合から始まり、実際のアーキテクチャ、ホスティング オプション (マネージド vs K3S)、Kubernetes が要求する運用規律について説明します。
要点
- コア オブジェクト モデルは本当に優れています。デプロイメントは望ましいレプリカの状態を記述し、サービスは安定したネットワークを提供し、ConfigMaps/Secret は個別の構成を提供し、Ingress は外部に到達します。宣言的調整 (ドリフトを修正するコントローラー) は、他のすべての基礎となるアーキテクチャです。
- 運用上の重要性は実際のものです。コントロール プレーン コンポーネント (API サーバー、etcd、スケジューラー、コントローラー マネージャー) にはそれぞれ HA とモニタリングが必要です。 etcd バックアップは、クラスターが回復可能かどうかを決定する単一の地味なタスクです。また、アップグレードの規律 (ステップごとに 1 つのマイナー バージョン、最初にカナリア ノード) は継続的な義務です。
- マネージド フォークとセルフマネージド フォーク: 運用削減のための GKE/EKS/AKS トレード コントロール、k3s/microk8s は小規模フリート向けの正当なミニ ディストリビューション、セルフマネージド HA マスターは依然として大規模チーム プロジェクトです。ホスティング ビジネスの場合、少数のノード上の k3s が適切な上限であることがよくあります。
- ストレージは、ほとんどの最初のクラスターが問題となる場所です。異なるクラウド上のストレージ クラス間の PV/PVC は異なり、hostPath はフットガンであり、ブロック ストレージをサポートするクラスには実際の IOPS/レート セマンティクスがあります。最初のステートフル ワークロードの前に、ストレージ クラスとバックアップ戦略 (velero クラス) を計画します。
- ネットワーキングは独自の分野です。CNI の選択 (フランネル、キャリコ、繊毛) によって、オーバーレイとネイティブ ルーティングおよび出力ポリシーが制御されます。 Ingress (nginx/traefik) と cert-manager ハンドル TLS。マーケットツールはゲートウェイ API の成熟度によって異なります。選択する前に測定してください。
- 私たちのコンテナ カテゴリにおける正直な判断は、マルチノード スケジューリング、自動スケーリング、API 主導のデプロイ自動化がワークロードを運ぶ場合には Kubernetes を採用することです。単一の WordPress サーバーを k8 しないでください。 k3s クラスのディストリビューションはユーティリティ ゾーンを拡張しますが、最小の正直なクラスターでは依然として compose よりも多くの操作コストがかかります。
現場ノート
「Kubernetes が必要だった」クライアントは、2 つのホスト上でちょうど 4 つのサービスを必要としていることが判明し、k3s はその特権のためにベビーシッターとしてコントロール プレーンをもたらしました。私たちはそれらをプレーンな構成スタックに移行したところ、オンコールのポケットベルは沈黙しました。 Kubernetes での最良の決定は、多くの場合、あなたが下さないことです。
よくある質問
私たちの小規模なホスティング スタックは Kubernetes に移行する必要がありますか?
おそらくそうではありません。ワークロードが少数のホストにわたる少数のサービスである場合、Compose または Podman で管理されるスタックの方が安全で監視しやすいです。 k8s の成果は、真に動的なスケジューリングのニーズまたは API 主導の大規模な自動化から始まります。
GKE、EKS、AKS、または自己管理の k3 ですか?
マネージド コントロール プレーンは、制御をオフロードされたアップグレードと交換します。オンプレミスおよびコスト上限の k3s クラス。自己管理型の完全な Kubernetes は特殊なプロジェクトであり、ホスティング ビジネス プロファイルにとって正しい答えとなることはほとんどありません。
最も一般的な運用上の失敗は何ですか?
etcd のバックアップが解除されます。次に、コントロール プレーンの証明書の有効期限が表示されます。クラスターのバックアップ (etcd スナップショットまたは velero) を、クラスター自体の後にデプロイされる最初のものとして扱います。
クラスターを安全に保護するにはどうすればよいでしょうか?
チームごとの実際のロールを備えた RBAC の最小特権、名前空間トラフィックを実際にセグメント化するネットワーク ポリシー、アドミッション時のイメージ スキャン (トリビークラス ポリシー フック)、生の YAML ではなく外部シークレット マネージャー経由で処理されるクラスター内シークレット。
コンテナとオーケストレーション に対するKinetikatechの支援
正直なところ、ほとんどのチームはまず自力で試してからご相談に来ます:インストールではなくイメージでソフトウェアを実行します。Docker、Podman、Porttainer、Kubernetes は、イメージの衛生管理、デーモンのセキュリティ、コンテナが運用を支援するか複雑にするかを決定するアップグレードの規律を備えています。 私たちのサーバー管理とLinuxサーバーセキュリティサービスは、コンテナとオーケストレーションを苦い経験で学ぶ必要がないように存在します。セットアップ、監視、そして3時の驚きをすべてお任せください。