AWSでkubernetesをセットアップしようとしています。このために、公式のAWSチュートリアルに従って、3つのノード(t2.small)を持つEKSクラスターを作成しました。次に、Postgres(異なるVPCのRDS)と通信するアプリでポッドを実行したいと思います。
しかし、残念ながらアプリはデータベースに接続しません。
私が持っているもの:
これらのすべての手順の後で、kubectlコマンドを実行します。
kubectl exec -it my-pod-app-6vkgm nslookup rds-vpc.unique_id.us-east-1.rds.amazonaws.com
nslookup: can't resolve '(null)': Name does not resolve
Name: rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Address 1: 52.0.109.113 ec2-52-0-109-113.compute-1.amazonaws.com
次に、3つのノードのいずれかに接続し、コマンドを実行します。
getent hosts rds-vpc.unique_id.us-east-1.rds.amazonaws.com
52.0.109.113 ec2-52-0-109-113.compute-1.amazonaws.com rds-vpc.unique_id.us-east-1.rds.amazonaws.com
ポッドからRDSにアクセスするためにEKSセットアップで見逃したものは何ですか?
更新:
Service
で問題を解決しようとしました:
apiVersion: v1
kind: Service
metadata:
name: postgres-service
spec:
type: ExternalName
externalName: rds-vpc.unique_id.us-east-1.rds.amazonaws.com
そのため、このサービスをEKSで作成し、直接のRDSホストアドレスの代わりにpostgres-service
をDB URLとして参照しようとしました。
この修正は機能しません:(
私が提供した答え here は実際にあなたのケースにも当てはまるかもしれません。
セレクターなしのサービス の使用についてです。 ExternalName サービスも確認してください。