複数の環境(QA、ステージング、本番、開発など)を管理するためのK8Sの良い習慣とは何ですか?
例として、チームがフロントエンドアプリケーションとともにいくつかのAPIをデプロイする必要がある製品に取り組んでいるとしましょう。通常、これには少なくとも2つの環境が必要です。
- ステージング:クライアントにリリースする前の反復/テストおよび検証用
- 本番:クライアントがアクセスできる環境。安定した十分にテストされた機能が含まれている必要があります。
では、チームがKubernetesを使用していると仮定すると、これらの環境をホストするための良い方法は何でしょうか?これまでに2つのオプションを検討しました。
- 各環境にK8sクラスターを使用する
- K8sクラスターを1つだけ使用し、異なる名前空間に保持します。
(1)人為的なミスや生産環境を危険にさらす可能性のある機械の故障のリスクを最小限に抑えるため、最も安全なオプションのようです。ただし、これには、より多くのマスターマシンのコストと、より多くのインフラストラクチャ管理のコストが伴います。
(2)クラスターが1つしかないため、インフラストラクチャとデプロイメント管理が簡素化されるように見えますが、次のようないくつかの質問が生じます。
- 人的ミスが本番環境に影響を与える可能性があることをどのように確認しますか?
- ステージング環境の高負荷によって本番環境のパフォーマンスが低下しないようにするにはどうすればよいですか?
他にも懸念事項がある可能性があるため、StackOverflowのK8sコミュニティに連絡して、人々がこの種の課題にどのように対処しているかについて理解を深めています。