私たちは三つの異なる実行環境を持っている:Kubernetes:管理アプリケーションの実行ほとんどのアプリケーションと同様の環境
- 生産
- ステージング/ QA
- 開発
これらはすべて基本的にはENV変数を使用して設定されています。
環境内のすべてのサービス/ポッド/コンテナを実行するにはどうすればよいですか?ラベルを通して?または名前空間?
私たちは三つの異なる実行環境を持っている:Kubernetes:管理アプリケーションの実行ほとんどのアプリケーションと同様の環境
これらはすべて基本的にはENV変数を使用して設定されています。
環境内のすべてのサービス/ポッド/コンテナを実行するにはどうすればよいですか?ラベルを通して?または名前空間?
は私が公式のベストプラクティスがあるかどうかわからないが、私はいつも次のような理由で名前空間を使用して別の環境に好まれている:
それはあなたがまったく同じYAMLファイルを使用することができます3つのすべての環境での展開、サービスなど環境を切り替えるには、kubectlコマンドに--namespace=${YOUR_NS}
を追加するか、kubectl設定のすべての名前空間に1つのコンテキストを指定するだけでよいので、kubectl config use-context production
と言うことができます。 docsをチェックしてください!
Resource Quotasを使用すると、各環境で使用できる計算リソースの量を制限できます。
RBACを使用して、環境へのアクセスを制御できます。たとえば、小規模なグループのみが本番環境に変更を加えることを許可することができますが、すべての開発者は開発環境で必要なものを自由に行うことができます。
すべての名前空間の中に、ラベルを使用してアプリをさまざまな層に構造化することができます。この設定は、すべての環境で同じになります。