tencent cloud

Tencent Kubernetes Engine

お知らせ・リリースノート
製品アップデート情報
製品リリース記録
製品の説明
製品の優位性
製品アーキテクチャ
ユースケース
製品機能
リージョンとアベイラビリティーゾーン
クイックスタート
初心者ガイド
標準クラスターのクイック作成
ビギナー向け事例
コンテナアプリケーションのクラウドへのデプロイ Check List
TKE標準クラスターガイド
テンセントクバネティスエンジン
クラスター管理
ネットワーク管理
ストレージ管理
Worker ノードの概要
Kubernetes Object Management
ワークロード
クラウドネイティブサービスガイド
Prometheus監視サービス
TKE Serverlessクラスターガイド
TKE登録クラスターガイド
実践チュートリアル
Serverlessクラスター
ネットワーク
ログ
監視
運用・保守
DevOps
オートスケーリング
よくあるご質問
クラスター類
TKE Serverlessクラスター
運用保守系
サービス類
イメージリポジトリ類
リモート端末類

TKEでのカスタムドメイン名解決の実現

PDF
フォーカスモード
フォントサイズ
最終更新日: 2023-04-26 19:23:11

ユースケース

Tencent Kubernetes Engine(TKE)またはTKE Serverlessを使用する際、内部のカスタムドメイン名解決の必要性がある場合があります。
クラスター外に集中型ストレージサービスをご自身で構築した場合は、クラスター内のモニタリングまたはログデータを収集し、固定の内部ドメイン名によってストレージサービスに送信する必要があります。
従来の業務をコンテナ化する過程で、一部のサービスのコードが固定ドメイン名を使用して内部の他のサービスを呼び出すように設定されていて、かつその設定が変更できない場合は、KubernetesのService名を使用して呼び出すことはできません。

方法の選択

ここではクラスターでカスタムドメイン名を使用して解決を行う、次の3種類の方法の例をご紹介します。
ション
メリット
シンプルかつ直観的であり、任意の解決レコードを追加できます。
解決レコードのIPアドレスを事前に知る必要はありませんが、解決レコードが指定するアドレスはクラスター内にデプロイされている必要があります。
大量の解決レコードを管理でき、レコードの管理はすべて自作DNSで行えるため、レコードの追加と削除の際にCoreDNS設定を変更する必要がありません。
説明
方法1と方法2では、解決レコードを追加する際に毎回CoreDNSプロファイルを変更する必要があります(再起動は不要です)。ご自身のニーズに応じて評価し、具体的な方法を選択してください。

方法の例

方法1:CoreDNS Hostsプラグインを使用して任意のドメイン名解決を設定する

1. 次のコマンドを実行し、CoreDNSのconfigmapを変更します。次に例を示します。
kubectl edit configmap coredns -n kube-system
2. hosts設定を変更し、ドメイン名をhostsに追加します。次に例を示します。
hosts {
192.168.1.6 harbor.example.com
192.168.1.8 es.example.com
fallthrough
}
説明
harbor.example.comは192.168.1.6を指定し、es.example.comは192.168.1.8を指定します。
完全な設定の例は次のとおりです。
apiVersion: v1
data:
Corefile: |2-
.:53 {
errors
health
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
hosts {
192.168.1.6 harbor.example.com
192.168.1.8 es.example.com
fallthrough
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
reload
loadbalance
}
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: coredns
namespace: kube-system

方法2:CoreDNS Rewriteプラグインを使用してドメイン名をクラスター内サービスに指定する

カスタムドメイン名を使用したサービスをクラスターにデプロイしたい場合は、CoreDNSのRewriteプラグインを使用し、指定のドメイン名をあるServiceのClusterIPに解決することができます。
1. 次のコマンドを実行し、CoreDNSのconfigmapを変更します。次に例を示します。
kubectl edit configmap coredns -n kube-system
2. 次のコマンドを実行し、Rewrite設定を追加します。次に例を示します。
rewrite name es.example.com es.logging.svc.cluster.local
説明
es.example.comloggingネームスペース下にデプロイされたesサービスを指定します。複数のドメイン名がある場合は行を追加できます。
完全な設定の例は次のとおりです。
apiVersion: v1
data:
Corefile: |2-
.:53 {
errors
health
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
rewrite name es.example.com es.logging.svc.cluster.local
prometheus :9153
forward . /etc/resolv.conf
cache 30
reload
loadbalance
}
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: coredns
namespace: kube-system

方法3:CoreDNS Forwardプラグインを使用して自作DNSをアップストリームDNSとして設定する

1. forward設定を確認します。forwardのデフォルト設定は次のとおりです。クラスター内以外のドメイン名がCoreDNSの所在ノード/etc/resolv.confファイル内に設定されたnameserverによって解決されることを指します。
forward . /etc/resolv.conf
2. forwardを設定し、/etc/resolv.confを自作DNSサーバーアドレスに明示的に置き換えます。次に例を示します。
forward . 10.10.10.10
完全な設定の例は次のとおりです。
apiVersion: v1
data:
Corefile: |2-
.:53 {
errors
health
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . 10.10.10.10
cache 30
reload
loadbalance
}
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: coredns
namespace: kube-system
3. カスタムドメイン名の解決レコードを自作DNSに設定します。ノード上の/etc/resolv.conf内のnameserverを自作DNSのアップストリームに追加することをお勧めします。一部のサービスはTencent Cloud内部のDNS解決に依存しており、上記を自作DNSのアップストリームに設定しなければ、一部のサービスが正常に動作しなくなる場合があるためです。ここではBIND 9を例にとり、プロファイルを変更し、アップストリームDNSアドレスをforwardersに書き込みます。次に例を示します。
注意
自作DNS Serverとリクエスト元が同じRegionにない場合、クロスドメインアクセスをサポートしていない一部のTencentドメイン名が無効になる場合があります。
options {
forwarders {
183.60.83.19;
183.60.82.98;
};
...

参考ドキュメント

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック