kubernetesのv1.21以降でnamespaceに自動でラベルが付与されるようになりました。
それが以下のラベル。
1 |
kubernetes.io/metadata.name |
これ、何が嬉しいかというと、networkpolicyでネームスペース間の制御をしようとする際に、ネームスペースにラベルを追加する必要なく、ネームスペース名を指定するだけで済むってことです。(
ネームスペース「kamotora」にいる全podを対象として、ネームスペース「default」からのアクセスを許可するには以下のようにnetworkpolicyを定義します。(ポリシー名「kamo1」)
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<span class="hljs-attr">apiVersion:</span> <span class="hljs-string">networking.k8s.io/v1</span> <span class="hljs-attr">kind:</span> <span class="hljs-string">NetworkPolicy</span> <span class="hljs-attr">metadata:</span> <span class="hljs-attr">name:</span> kamo<span class="hljs-string">1</span> <span class="hljs-attr">namespace:</span> kamotora <span class="hljs-attr">spec:</span> <span class="hljs-attr">podSelector:</span> <span class="hljs-string">{}</span> <span class="hljs-attr">policyTypes:</span> <span class="hljs-bullet">-</span> <span class="hljs-string">Ingress</span> <span class="hljs-attr">ingress:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">from:</span> <span class="hljs-bullet">-</span> <span class="hljs-attr">namespaceSelector:</span> <span class="hljs-attr">matchLabels:</span> <span class="hljs-attr">kubernetes.io/metadata.name:</span> default |
1 |