👨💻
Kubernetes namepace.label and selectorについて
namespaceとlabel and selectorについて
- namespace
- クラスター内でリソースを分ける機能がある。
- ユースケースとしては、1つのkubernetesクラスター内で複数のprojectを扱う場合、namespaceを分けることで、どのpodがどのprojectで使用されてるか可視化することが可能。
- ユースケースとしては、1つのkubernetesクラスター内で複数のprojectを扱う場合、namespaceを分けることで、どのpodがどのprojectで使用されてるか可視化することが可能。
- クラスター内でリソースを分ける機能がある。
- manifestでは下記のように作成し、Pod作成時に指定したいnamespaceを記載する。
何も指定しない場合は、defaultのnamespaceがアタッチされる。
apiVersion: v1
kind: Namespace
metadata:
name: zenn
---
apiVersion: v1
kind: Pod
metadata:
name: zenn
namespace: zenn
labels:
env: dev
spec:
containers:
- name: nginx-container
image: nginx
- label and selector
- labelはリソースを分別するための情報
- selectorはl4ロードバランサーで負荷分散する対象を設定する
- 下記manifestを作成した場合、env:devとprodのlabelがついたpodを作成後、serviceのselectorでenv: devを指定してるので、zenn1.3のpodを対象にserviceは負荷分散する。
#containerの情報は割愛
apiVersion: v1
kind: Pod
metadata:
name: zenn1
labels:
env: dev
---
apiVersion: v1
kind: Pod
metadata:
name: zenn2
labels:
env: prod
---
apiVersion: v1
kind: Pod
metadata:
name: zenn3
labels:
env: dev
---
#service
#specの中でtypeと同じインデントで
spec:
type: NodePort
selector:
env: dev
Discussion