| 243 | |
| 244 | == DNSについて |
| 245 | |
| 246 | 詳細は下記の3.6以降のセクションを読んでください。その前まで読んで満足すると最新のアーキテクチャと違うので**はまります** |
| 247 | |
| 248 | 参考: https://www.redhat.com/ja/blog/red-hat-openshift-container-platform-dns-deep-dive-dns-changes-red-hat-openshift-container-platform-36 |
| 249 | |
| 250 | OpenShift上では各ノード上で下記のDNSが動いています。 |
| 251 | |
| 252 | 1. Dnsmasq(host ip:53) |
| 253 | 2. SkyDNS(127.0.0.1:53) |
| 254 | 3. SkyDNS(127.0.0.1:8053, masterノードのみ) |
| 255 | |
| 256 | また、外部からコンテナにアクセスするためのDNSが別途OpenShift外部に必要となります。 |
| 257 | |
| 258 | 3は2から呼ばれるようになっていて、ユーザが意識する必要はあります。各OpenShiftノード(master/node)からは、 |
| 259 | 1を参照するように設定します。 |
| 260 | |
| 261 | ### /etc/resolv.conf |
| 262 | |
| 263 | {{{ |
| 264 | search cluster.local test.example.com |
| 265 | nameserver 192.168.1.3 |
| 266 | }}} |
| 267 | |
| 268 | cluster.localはOpenShiftのコンテナ名のためのsuffixで固定です。test.example.comは環境によりことなり、OpenShiftのホスト名(node,master)のsuffixです。(ose3-node1.test.example.comというホスト名を利用した例) |
| 269 | |
| 270 | |
| 271 | 次に、dnsmasqを設定します。とは言っても、OpenShiftをインストールするとある程度自動で設定されます。 |
| 272 | まず、コンテナの名前解決ように下記の設定がされます。 |
| 273 | |
| 274 | ### /etc/dnsmasq.d/node-dnsmasq.conf |
| 275 | {{{ |
| 276 | server=/in-addr.arpa/127.0.0.1 |
| 277 | server=/cluster.local/127.0.0.1 |
| 278 | }}} |
| 279 | |
| 280 | コンテナ以外の名前解決については、自分で設定する必要があります。例えば、外部DNSを10.0.0.4とした場合、下記のような設定を**自分で追加**します。 |
| 281 | |
| 282 | ### /etc/dnsmasq.d/upstream-dns.conf |
| 283 | {{{ |
| 284 | server=10.0.0.4 |
| 285 | }}} |
| 286 | |
| 287 | ### 外部DNS |
| 288 | |
| 289 | 外部のブラウザからアプリケーションの名前を解決するためのDNSが必要となります。Ansibleのインベントリの変数 |
| 290 | openshift_master_default_subdomainで設定したホスト名を外部でLBのIPアドレスで解決するようにします。 |
| 291 | |
| 292 | {{{ |
| 293 | server=8.8.8.8 |
| 294 | address=/.apps.test.example.com/192.168.1.3 |
| 295 | }}} |
| 296 | |
| 297 | LBの設定については、また今度、、 |