コンテンツにスキップ

10. 名前空間

Namespaceを使うとクラスター内のリソースを分離することができる。

namespace.yamlを追加する。

k8s/namespace.yaml
1
2
3
4
apiVersion: v1
kind: Namespace
metadata:
  name: app

各リソースのmetadatanamespace: appを追加する。

1
2
metadata:
  namespace: app
1
2
3
4
5
$ kubectl delete deployment app db -n default
$ kubectl delete service app db -n default
$ kubectl delete configmap db-cm0 -n default
$ kubectl delete pvc pgdata -n default
$ kubectl delete hpa app -n default
1
2
3
$ kubectl get service app -n app
NAME   TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
app    NodePort   10.43.83.156   <none>        3000:32674/TCP   3h16m

3000の右の値が公開ポート

補足: nameについて

name自体は一意でなくて良い。ただしnamespacekindnameの組み合わせが一意でなければならない。