{"id":224,"date":"2021-12-22T15:39:05","date_gmt":"2021-12-22T06:39:05","guid":{"rendered":"https:\/\/blog.chatagiriii.com\/?p=224"},"modified":"2025-12-10T17:06:11","modified_gmt":"2025-12-10T08:06:11","slug":"%e3%81%8a%e3%81%86%e3%81%a1kubernetes%e4%b8%8a%e3%81%abnsd%e3%81%a8unbound%e3%82%92%e5%bb%ba%e3%81%a6%e3%81%a6%e3%81%8a%e3%81%86%e3%81%a1dns%e3%81%99%e3%82%8b","status":"publish","type":"post","link":"https:\/\/blog.chatagiriii.com\/?p=224","title":{"rendered":"\u304a\u3046\u3061Kubernetes\u4e0a\u306bnsd\u3068unbound\u3092\u5efa\u3066\u3066\u304a\u3046\u3061DNS\u3059\u308b"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u3053\u306e\u8a18\u4e8b\u30924\u884c\u3067<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u304a\u3046\u3061Kubernetes\u306eIngress\u30ea\u30bd\u30fc\u30b9\u6570\u304c\u5897\u3048\u3066\u304d\u305f<\/li>\n\n\n\n<li>LAN\u5185\u7aef\u672b\u304b\u3089Ingress\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u70ba\u306bhosts\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u3044\u3066\u56de\u308b\u306e\u304c\u9762\u5012\u306b\u306a\u3063\u3066\u304d\u305f<\/li>\n\n\n\n<li>Kubernetes\u4e0a\u306bnsd\u3068unbound\u3092\u7acb\u3066\u3066LAN\u5185\u540d\u524d\u89e3\u6c7a\u3092\u4efb\u305b\u308b<\/li>\n\n\n\n<li>\u6210\u679c\u7269manifest: https:\/\/gitlab.chatagiriii.com\/open\/nsd-unbound-on-k8s<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u304a\u3046\u3061Kubernetes\u4f5c\u3063\u3066\u304b\u30891\u5e74<\/h2>\n\n\n\n<p>chatagiri\u3067\u3059\u3002<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.chatagiriii.com\/?p=97\" data-type=\"URL\" data-id=\"https:\/\/blog.chatagiriii.com\/?p=97\" target=\"_blank\" rel=\"noreferrer noopener\">\u304a\u3046\u3061Kubernetes\u306e\u69cb\u6210\u8003\u3048\u3066<\/a>\u3001\u5b9f\u969b\u306b\u904b\u7528\u3092\u59cb\u3081\u3066\u304a\u304a\u3088\u305d1\u5e74\u304c\u7d4c\u3061\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>(<s>\u66f8\u304f\u3001\u66f8\u304f\u3068\u8a00\u3044\u306a\u304c\u3089\u672a\u3060\u306b\u69cb\u7bc9\u624b\u9806\u66f8\u3044\u3066\u306a\u3044\u306e\u306f\u3054\u3081\u3093\u306a\u3055\u3044<\/s>)<\/p>\n\n\n\n<p>\u904b\u7528\u304b\u30891\u5e74\u3082\u7d4c\u3064\u3068\u6709\u8c61\u7121\u8c61\u306ePod\u9054\u304c\u7121\u9020\u4f5c\u306b\u52d5\u304d\u3063\u3071\u306a\u3057\u306b\u306a\u3063\u3066\u304a\u308a\u30012021\/12\/22\u73fe\u5728\u3067104Pod\u300154Service, 20Ingress\u304c\u7a3c\u50cd\u4e2d\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">$ kubectl get pods --all-namespaces | grep -v NAMESPACE | wc -l\n104\n$ kubectl get svc --all-namespaces | grep -v NAMESPACE | wc -l\n54\n$ k get ingress --all-namespaces | grep -v NAMESPACE | wc -l\n20<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">hosts\u30d5\u30a1\u30a4\u30eb\u5f04\u308b\u306e\u9762\u5012&#8230;<\/h2>\n\n\n\n<p>\u52d5\u3044\u3066\u3044\u308b\u3082\u306e\u304c\u591a\u3044\u3068\u5b09\u3057\u3044\u4e00\u65b9\u3067\u554f\u984c\u304c\u3002\u5897\u3048\u305fIngress\u306e\u6570\u3060\u3051\u624b\u5143\u7aef\u672b\u305f\u3061\u306ehosts\u3092\u7de8\u96c6\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067\u3059\u3002\u3002<\/p>\n\n\n\n<p>\u81ea\u5206\u306e\u5bb6\u306b\u306f\u65e5\u5e38\u4f7f\u3044\u306ePC2\u53f0\u3001Android\u30b9\u30de\u30db1\u53f0\u3001AndroidTV1\u53f0\u304c\u3042\u308a\u3001Ingress\u30921\u500b\u8ffd\u52a0\u3057\u305f\u3068\u304d\u306b\u306f\u305d\u308c\u305e\u308c\u306ehosts\u3092\u5f04\u3089\u306a\u3044\u3068LAN\u5185\u540d\u524d\u89e3\u6c7a\u304c\u51fa\u6765\u306a\u3044\u306e\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u7279\u306bAndroid\u306ehosts\u3092\u5f04\u308b\u70ba\u306b\u306f\u57fa\u672c\u7684\u306broot\u3092\u53d6\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\u6298\u89d2\u4f5c\u3063\u305f\u81ea\u5b85\u30d5\u30a1\u30a4\u30eb\u30b5\u30fc\u30d0\u306bLAN\u5185Wi-Fi\u7d4c\u7531\u3067\u5165\u308c\u306a\u3044\u7b49\u306e\u554f\u984c\u304c\u51fa\u3066\u304d\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u3053\u308c\u3092\u6a5f\u306b\u304a\u3046\u3061DNS\u9bd6\u3092\u5efa\u3066\u3001\u65b0\u3057\u304fIngress\u30ea\u30bd\u30fc\u30b9\u3092\u5165\u308c\u305f\u6642\u306b\u306f\u6a29\u5a01DNS\u306e\u66f4\u65b01\u672c\u3067\u5168\u7aef\u672b\u304b\u3089\u540d\u524d\u89e3\u6c7a\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u8a66\u307f\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">nsd\u3068unbound<\/h2>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/unbound.jp\/nsd4\/\" data-type=\"URL\" data-id=\"https:\/\/unbound.jp\/nsd4\/\" target=\"_blank\">NSD<\/a>\u306fdns\u306e\u6a29\u5a01DNS\u30b5\u30fc\u30d0\u7528\u306eOSS\u3067\u3001<a rel=\"noreferrer noopener\" href=\"https:\/\/unbound.jp\/unbound\/\" data-type=\"URL\" data-id=\"https:\/\/unbound.jp\/unbound\/\" target=\"_blank\">unbound<\/a>\u306f\u30ad\u30e3\u30c3\u30b7\u30e5DNS\u30b5\u30fc\u30d0\u7528\u306eOSS\u3067\u3059\u3002\u8a73\u7d30\u306f\u30ea\u30f3\u30af\u5148\u3092\u8ffd\u3063\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u3053\u3053\u304c\u3053\u3046\u306a\u308b<\/h2>\n\n\n\n<p>\u3053\u3046\u5909\u308f\u308b\u3001\u3092\u56f3\u306b\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u524d\u63d0:\n<ul class=\"wp-block-list\">\n<li>metallb\u5c0e\u5165\u6e08\u307fKubernetes cluster<\/li>\n\n\n\n<li>nginx-ingress-controller\u5c0e\u5165\u6e08\u307fKubnernetes cluster<\/li>\n\n\n\n<li>(\u300cnginx-ingress-controller\u4f7f\u3063\u3066\u308b\u306a\u3089\u56f3\u306eService\u306eIP\u56de\u308a\u304a\u304b\u3057\u304f\u306a\u3044\uff1f\u300d\u3068\u6c17\u3065\u304f\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u4f8b\u3068\u3057\u3066\u5206\u304b\u308a\u3084\u3059\u3044\u3088\u3046\u306b\u56f3\u4e2d\u306eIP\u56de\u308a\u306f\u90fd\u5ea6\u5909\u66f4\u3057\u3066\u3044\u307e\u3059\u3002)<\/li>\n\n\n\n<li>\u3054\u81ea\u8eab\u306e\u74b0\u5883\u306b\u5408\u308f\u305b\u3066\u8aad\u307f\u66ff\u3048\u4e0b\u3055\u3044<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>before:\n<ul class=\"wp-block-list\">\n<li>\u6d41\u308c\n<ul class=\"wp-block-list\">\n<li>webapp01\u306ePod\/Service(192.168.1.210)\/Configmap\/PV\u306a\u3069\u3092\u4f5c\u6210<\/li>\n\n\n\n<li>webapp01.example.jp \u3067ingress \u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3057\u3066\u3001\u5916\u90e8\u306b\u516c\u958b<\/li>\n\n\n\n<li>LAN\u5185\u304b\u3089\u3082ingress\u306e\u540d\u524d\u3067\u30a2\u30af\u30bb\u30b9\u3057\u305f\u3044\u306e\u3067\u3001\u5404\u7aef\u672b\u306ehosts\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6(webapp01.example.jp,192.168.1.210)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30e1\u30ea\u30c3\u30c8\u30c7\u30e1\u30ea\u30c3\u30c8\n<ul class=\"wp-block-list\">\n<li>\u65b0\u3057\u304fingress\u3092\u8ffd\u52a0\u3057\u305f\u3068\u304d\u3001\u5404\u7aef\u672b\u306ehosts\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u3066\u307e\u308f\u308b\u5fc5\u8981\u304c\u3042\u308b<\/li>\n\n\n\n<li>DNS\u56de\u308a\u304c\u4e00\u5143\u7ba1\u7406\u3055\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u3001\u6f0f\u308c\u3060\u3063\u305f\u308a\u3001\u4eca\u3069\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u6709\u308b\u304b\u7121\u3044\u304b\u3092\u3044\u3061\u3044\u3061\u78ba\u8a8d\u306e\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u304c\u3042\u308b<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>after:\n<ul class=\"wp-block-list\">\n<li>\u6d41\u308c\n<ul class=\"wp-block-list\">\n<li>webapp01\u306ePod\/Service(192.168.1.210)\/Configmap\/PV\u306a\u3069\u3092\u4f5c\u6210<\/li>\n\n\n\n<li>webapp01.example.jp \u3067ingress \u30ea\u30bd\u30fc\u30b9\u3092\u4f5c\u6210\u3057\u3066\u3001\u5916\u90e8\u306b\u516c\u958b<\/li>\n\n\n\n<li>nsd\u306epod\u306econfigmap\u3092\u7de8\u96c6\u3057\u3066\u3001 (webapp01.example.jp 192.168.1.210) \u306e\u30ec\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0<\/li>\n\n\n\n<li>\u5404\u7aef\u672b\u306eDNS\u30b5\u30fc\u30d0\u306e\u5411\u3051\u5148\u3092unbound\u306b\u8a2d\u5b9a\u3057\u3066\u3001webapp01.exmaple.jp\u3092\u554f\u3044\u5408\u308f\u305b\u308b<\/li>\n\n\n\n<li>unbound\u306fnsd\u306b\u5bfe\u3057\u3066webapp01.example.jp\u3092\u554f\u3044\u5408\u308f\u305b\u3001192.168.1.210\u306e\u5fdc\u7b54\u3092\u8cb0\u3044\u3001\u5404\u7aef\u672b\u306b\u8fd4\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30e1\u30ea\u30c3\u30c8\u30c7\u30e1\u30ea\u30c3\u30c8\n<ul class=\"wp-block-list\">\n<li>\u65b0\u3057\u304fingress\u3092\u8ffd\u52a0\u3057\u305f\u3068\u304d\u3001nsd\u306e\u30ec\u30b3\u30fc\u30c9\u8a2d\u5b9a\u3092\u7de8\u96c6\u3059\u308b\u3060\u3051\u3067\u3088\u3044<\/li>\n\n\n\n<li>DNS\u56de\u308a\u304c\u4e00\u5143\u7ba1\u7406\u3055\u308c\u3001\u767b\u9332\u6f0f\u308c\u3084\u78ba\u8a8d\u304c\u697d\u306b\u306a\u308b<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" width=\"666\" height=\"531\" src=\"https:\/\/blog.chatagiriii.com\/wp-content\/uploads\/2021\/12\/Untitled-Diagram.drawio-3-1.png\" alt=\"\" class=\"wp-image-229\" style=\"width:666px;\" srcset=\"https:\/\/blog.chatagiriii.com\/wp-content\/uploads\/2021\/12\/Untitled-Diagram.drawio-3-1.png 666w, https:\/\/blog.chatagiriii.com\/wp-content\/uploads\/2021\/12\/Untitled-Diagram.drawio-3-1-300x239.png 300w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><figcaption class=\"wp-element-caption\">\u3053\u308c\u304c<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" width=\"800\" height=\"701\" src=\"https:\/\/blog.chatagiriii.com\/wp-content\/uploads\/2021\/12\/Untitled-Diagram.drawio-2-1.png\" alt=\"\" class=\"wp-image-230\" style=\"width:800px;\" srcset=\"https:\/\/blog.chatagiriii.com\/wp-content\/uploads\/2021\/12\/Untitled-Diagram.drawio-2-1.png 800w, https:\/\/blog.chatagiriii.com\/wp-content\/uploads\/2021\/12\/Untitled-Diagram.drawio-2-1-300x263.png 300w, https:\/\/blog.chatagiriii.com\/wp-content\/uploads\/2021\/12\/Untitled-Diagram.drawio-2-1-768x673.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">\u3053\u3046\u306a\u308b<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">nsd\u3068unbound\u306ek8s manifest\u3092\u66f8\u304f<\/h2>\n\n\n\n<p>\u8133\u6b7b\u3067\u30c0\u30fc\u30fc\u30c3\u3068\u66f8\u304d\u307e\u3059\u3002\u610f\u5916\u3068kubernetes\u3067nsd\u3068unbound\u3057\u3066\u3001manifest\u30d5\u30a1\u30a4\u30eb\u307e\u3067\u516c\u958b\u3057\u3066\u308b\u4eba\u304c\u5c45\u306a\u304b\u3063\u305f\u305f\u3081\u8272\u3005\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>example.jp\u306a\u90e8\u5206\u3092\u7f6e\u304d\u63db\u3048\u305f\u308a\u3001DNS\u30ec\u30b3\u30fc\u30c9\u56de\u308a\u306f\u3054\u81ea\u5206\u306e\u74b0\u5883\u306b\u5408\u308f\u305b\u3066\u5909\u66f4\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u307e\u305f\u3001Service\u306eserviceType\u306fLoadBalancer\u306b\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3054\u5bb6\u5ead\u306eKubernetes\u306b\u4e57\u3063\u3066\u3044\u308b\u3082\u306e\u306b\u5408\u308f\u305b\u3066\u3054\u5909\u66f4\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>manifest\u30d5\u30a1\u30a4\u30eb\u306f<a rel=\"noreferrer noopener\" href=\"https:\/\/gitlab.chatagiriii.com\/open\/nsd-unbound-on-k8s\" data-type=\"URL\" data-id=\"https:\/\/gitlab.chatagiriii.com\/open\/nsd-unbound-on-k8s\" target=\"_blank\">\u3053\u3061\u3089<\/a>\u306b\u3082\u7f6e\u3044\u3066\u3042\u308a\u307e\u3059\u3002:  <a href=\"https:\/\/gitlab.chatagiriii.com\/open\/nsd-unbound-on-k8s\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gitlab.chatagiriii.com\/open\/nsd-unbound-on-k8s<\/a><\/p>\n\n\n\n<pre title=\"nsd\" class=\"wp-block-code\"><code lang=\"yaml\" class=\"language-yaml line-numbers\">---\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: nsd\n---\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  labels:\n    app: nsd\n  name: nsd\n  namespace: nsd\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: nsd\n  template:\n    metadata:\n      labels:\n        app: nsd\n    spec:\n      containers:\n      - image: ghcr.io\/the-kube-way\/nsd:latest\n        name: nsd\n        ports:\n          - name: udp\n            containerPort: 53\n        volumeMounts:\n          - name: nsd-zones\n            mountPath: \/zones\n          - name: nsd-conf\n            mountPath: \/etc\/nsd\/nsd.conf\n            subPath: nsd.conf\n      volumes:\n        - name: nsd-zones\n          configMap:\n            name: nsd-zones\n            items:\n              - key: db.example.jp\n                path: example.jp.zone\n                mode: 0644\n        - name: nsd-conf\n          configMap:\n            name: nsd-conf\n            items:\n              - key: nsd.conf\n                path: nsd.conf\n                mode: 0644\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: nsd\n  namespace: nsd\n  labels:\n    app: nsd\nspec:\n  ports:\n    - name: dns\n      port: 53\n      protocol: UDP\n  selector:\n    app: nsd\n  type: LoadBalancer\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: nsd-zones\n  namespace: nsd\ndata:\n  db.example.jp: |\n    $ORIGIN example.jp.\n    $TTL 800\n\n    ; SOA\n\n    @       IN      SOA    ns1.example.jp. example.jp. (\n                                            1 ; Serial\n                                            3200       ; Refresh\n                                            1800       ; Retry\n                                            96000    ; Expire\n                                            86400 )    ; Minimum\n\n    ; NAMESERVERS\n\n    @                   IN                NS                   ns.example.jp.\n\n    ; A RECORDS\n\n    @             IN      A       192.168.1.XX\n\n    k8s-master00  IN      A       192.168.1.10\n    k8s-worker00  IN      A       192.168.1.20\n    k8s-worker00  IN      A       192.168.1.21\n    k8s-worker00  IN      A       192.168.1.22\n    webapp00      IN      A       192.168.1.200\n    webapp01      IN      A       192.168.1.210<\/code><\/pre>\n\n\n\n<pre title=\"unbound\" class=\"wp-block-code\"><code lang=\"yaml\" class=\"language-yaml line-numbers\">---\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: unbound\n---\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  labels:\n    app: unbound\n  name: unbound\n  namespace: unbound\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: unbound\n  template:\n    metadata:\n      labels:\n        app: unbound\n    spec:\n      containers:\n      - image: mvance\/unbound\n        name: unbound\n        ports:\n          - name: udp\n            containerPort: 53\n        volumeMounts:\n          - name: unbound-conf\n            mountPath: \/opt\/unbound\/etc\/unbound\/unbound.conf\n            subPath: unbound.conf\n      volumes:\n        - name: unbound-conf\n          configMap:\n            name: unbound-conf\n            items:\n              - key: unbound.conf\n                path: unbound.conf\n                mode: 0644\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: unbound\n  namespace: unbound\n  labels:\n    app: unbound\nspec:\n  ports:\n    - name: dns\n      port: 53\n      protocol: UDP\n  selector:\n    app: unbound\n  type: LoadBalancer\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: unbound-conf\n  namespace: unbound\ndata:\n  unbound.conf: |\n    server:\n      interface: 0.0.0.0\n      access-control: 192.168.1.0\/24 allow\n      # pod network\n      access-control: 10.244.1.0\/24 allow\n      access-control: 10.244.2.0\/24 allow\n      access-control: 10.244.3.0\/24 allow\n      do-not-query-localhost: no\n      cache-max-ttl: 10\n\n    stub-zone:\n      name: example.jp\n      stub-addr: 192.168.1.100@53\n\n    # example.jp \u4ee5\u5916\u306e\u30c9\u30e1\u30a4\u30f3\u306b\u3064\u3044\u3066\u306fgoogle\u306b\u805e\u304f\n    forward-zone:                \n        name: \".\"\n        forward-addr: 8.8.8.8\n        forward-addr: 8.8.4.4\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">k8s\u3067\u3082dns\u56de\u308a\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3057\u305f<\/h2>\n\n\n\n<p>\u51fa\u6765\u308b\u304b\u306a\u30fc\uff1f\u3050\u3089\u3044\u3067\u8abf\u3079\u3066\u3044\u3063\u305fdns on k8s\u3067\u3059\u304c\u3001\u6848\u5916\u3059\u3093\u306a\u308a\u52d5\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u610f\u5916\u3068kubernetes\u3067nsd\u3068unbound\u3057\u3066\u3001manifest\u30d5\u30a1\u30a4\u30eb\u307e\u3067\u516c\u958b\u3057\u3066\u308b\u4eba\u304c\u5c45\u306a\u304b\u3063\u305f\u305f\u3081\u3001\u8ab0\u304b\u306e\u304a\u5f79\u306b\u7acb\u3066\u308c\u3070\u5b09\u3057\u3044\u3067\u3059\u306d&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u8a18\u4e8b\u30924\u884c\u3067 \u304a\u3046\u3061Kubernetes\u306eIngress\u30ea\u30bd\u30fc\u30b9\u6570\u304c\u5897\u3048\u3066\u304d\u305f LAN\u5185\u7aef\u672b\u304b\u3089Ingress\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u70ba\u306bhosts\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u3044\u3066\u56de\u308b\u306e\u304c\u9762\u5012\u306b\u306a\u3063\u3066\u304d\u305f Kubern &#8230; <\/p>\n","protected":false},"author":1,"featured_media":167,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-224","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech"],"_links":{"self":[{"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=\/wp\/v2\/posts\/224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=224"}],"version-history":[{"count":0,"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=\/wp\/v2\/posts\/224\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=\/wp\/v2\/media\/167"}],"wp:attachment":[{"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.chatagiriii.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}