ハイブリッドクラウドシナリオでは、内部ネットワークのイメージリポジトリからイメージをプルする場合、またはコンテナが内部ドメイン名にアクセスする必要がある場合は、Elastic container Instanceベースのポッドのドメインネームシステム (DNS) サーバーを内部DNSサーバーに設定する必要があります。 次に、内部DNSサーバーを使用して内部ドメイン名を解決できます。 このトピックでは、Elastic Container InstanceベースのポッドにカスタムDNSサーバーを設定する方法について説明します。
背景情報
ハイブリッドクラウドのシナリオでは、Kubernetesクラスターにオンプレミスノードが含まれ、イメージリポジトリがオンプレミスノードにある場合、クラスターのDNSサーバーがローカル内部ネットワークを解決できないため、ポッドはオンプレミスネットワーク環境にアクセスできない可能性があります。 Elastic Container Instanceは、カスタムDNSサーバー機能を提供します。 Elastic Container Instanceベースのポッド用にカスタムDNSサーバーを設定して、内部ドメイン名を解決できます。 次に、ローカル内部ネットワークにアクセスできます。
設定の説明
ポッドの構成ファイルのメタデータにk8s.aliyun.com/eci-custom-dnsconfig注釈を追加して、ポッドがカスタムDNSサーバーを使用することを指定できます。 このアノテーションの値は、{\"nameservers\":\"20.1.xx.xx.xx,20.1.xx\",\"searches\":\"xx.com,xx.eee\",\"options\":\"ndots:2,edns0\"} 形式にあります。 次の表に、設定ファイルに含まれるフィールドを示します。
項目 | 説明 |
ネームサーバー | DNSサーバーのIPアドレス。 最大2つのIPアドレスがサポートされています。 余分なIPアドレスは自動的に無視されます。 さらに、システムはAlibaba Cloud DNSサーバーのIPアドレスをフィールド値の末尾に自動的に追加し、システムが期待どおりに機能するようにします。 |
検索 | DNSサーバーの検索ドメイン。 最大32の検索ドメインが許可されます。 解決のために不完全なドメイン名を入力した場合、システムは検索フィールドの値にドメイン名サフィックスを使用してドメイン名を補完しようとし、ドメイン名を解決します。 |
オプション | DNS解決オプション。 値は複数のキーと値のペアにすることができます。 一般的なオプションは次のとおりです。
|
設定例:
ビジネス要件に基づいて、ポッドのdnsPolicyフィールドを設定できます。 dnsPolicyフィールドをDefaultに設定することを推奨します。これは、ポッドが存在するノードのDNS構成をポッドが継承することを示します。
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-custom-dnsconfig: "{\"nameservers\":\"20.1.xx.xx,20.1.xx.xx\",\"searches\":\"xx.com,xx.eee\",\"options\":\"ndots:2,edns0\"}"
spec:
dnsPolicy: Default
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80関連ドキュメント
DNS設定の詳細については、「DNSの概要」をご参照ください。