Member-only story
DNS管理を使ってKubernetesアプリケーションのデプロイメントをする方法(前半)
今回の記事は長いので2回に分けてお送りします。DNSゾーンなどについて詳しく説明します。
https://itnext.io/how-to-kubernetes-application-deployment-with-dns-management-ddf63b559b67
GitOpsの取り組みに関しては、多くの注意事項と、これらをコンフィギュアする際の警告や、さまざまな障害の中で、DNSが苦労しています。 私はこのExternal-DNS https://github.com/kubernetes-incubator/external-dns の実行中のデモを取得するのを長い間先延ばしをしてきましたが、今ここにあります。
そしてそれは本当に簡単です。
外部DNSはすべての管理を担っています。 FQDNをサービスとイングレスにマッピングしたりもします。とはいえ、KubernetesサービスのDNS管理には、loadBalancerタイプでプロビジョニングされたパブリックIPアドレスが必要です。 これにより、DNS管理が簡素化されます。K8サービスがデプロイされたり、削除されたりすると、レコードが自動的に追加および削除されます。 このようなサービスごとにIPプロビジョニングコストが発生するため、「ExternalIP」DNSマッピングでK8サービスを使用することはおそらくないでしょう。 そのため、それがより適切であることがわかった場合は、入力、ホストパスルーティングを再利用することをお勧めします。
ほとんどのインフラ環境設計にとっては、これは主に開発であり、おそらくステージング環境はバージョン管理され自動化されたコnfrastructure-as-codeプロビジョニングプロセスからのメリットがあるでしょう。
では、解決中の問題を見てみましょう — アプリケーションのダイナミックなDNSマッピングコンフィギュレーション要件に対処します。 これは、たとえば開発チームが新しいアプリケーション機能をデプロイしたりテストしたりするときに必要になる場合があります。 これは、Gitリポジトリがすべて自動的にプロビジョニングされる「信頼できる情報源」である#GitOps環境内でより適切にテストします。 このように、Kubernetes YAMLマニフェストを自動適用するWeaveworks Flux(https://github.com/fluxcd/flux)と連動しており、かなりのCD *をリリースプロセスに提供します。
私は「10歳の子供に説明するように説明してほしい」と思っています。しかもとても簡単でシンプルなデモを使って…