名前空間:リソースのグループ化

名前空間が必要な理由

ラベルは良いのですが、ラベルだけを使うとラベルがたくさんあり、オーバーラップすることもあり、クエリやその他のアクションごとにたくさんのラベルを持ってくるのは非常に不便です。Kubernetesは、リソースの編成と分割のためのネームスペースを提供します。複数のネームスペースを使用すると、多くのコンポーネントを含むシステムをさまざまなグループに分割できます。ネームスペースはマルチテナント分割にも使用できるため、複数のチームがクラスターを共有でき、使用されるリソースはネームスペースによって分割されます。

異なるネームスペースに同じ名前を付けることができます。Kubernetesのほとんどのリソースはネームスペースで分割できますが、一部のリソースはそうではありません。グローバルリソースに属し、ネームスペースに属していないため、後で徐々に公開されます。

次のコマンドを使用して、現在のクラスターの下の名前空間を照会できます。

$ kubectl get ns
NAME               STATUS   AGE
default            Active   36m
kube-node-realease Active   36m
kube-public        Active   36m
kube-system        Active   36m

これまでのところ、すべてデフォルトの名前空間で動作しています。名前空間を指定せずにkubectl getを使用すると、デフォルトの名前空間がデフォルトになります。

kube-systemの下にあるものを見てください。

$ kubectl get po --namespace=kube-system
NAME                                      READY   STATUS    RESTARTS   AGE
coredns-7689f8bdf-295rk                   1/1     Running   0          9m11s
coredns-7689f8bdf-h7n68                   1/1     Running   0          11m
everest-csi-controller-6d796fb9c5-v22df   2/2     Running   0          9m11s
everest-csi-driver-snzrr                  1/1     Running   0          12m
everest-csi-driver-ttj28                  1/1     Running   0          12m
everest-csi-driver-wtrk6                  1/1     Running   0          12m
icagent-2kz8g                             1/1     Running   0          12m
icagent-hjz4h                             1/1     Running   0          12m
icagent-m4bbl                             1/1     Running   0          12m

kube-systemには多くのポッドがあり、その中にはcorednsがサービス検出に使用され、everest-csiがHuaweiクラウドストレージサービスとのドッキングに使用され、icagentがHuaweiクラウド監視システムとのドッキングに使用されていることがわかります。

これらの一般的で必要なアプリケーションはkube-system名前付けに配置され、他のポッドから分離できます。kube-system名前付け内のものは他の名前付けでは表示されず、影響を受けません。 。

名前空間を作成する

次の方法を使用して、名前空間を定義します。

apiVersion: v1 
kind: Namespace 
metadata: 
  name: custom-namespace 

kubectlコマンドを使用して作成します。

$ kubectl create -f custom-namespace.yaml
namespace/custom-namespace created 

kubectl createnamespaceコマンドを使用して作成することもできます。

$ kubectl create namespace custom-namespace 
namespace/custom-namespace created 

指定された名前空間の下にリソースを作成します。

$ kubectl create -f nginx.yaml -n custom-namespace 
pod/nginx created 

このように、デフォルトおよびカスタムネームスペースの下にnginxという名前のポッドがあります。

名前空間の分離手順

名前空間は組織にのみ分割でき、実行中のオブジェクトに対して完全に分離することはできません。たとえば、名前空間の下にある2つのポッドが互いのIPを知っていて、Kubernetesが依存する基盤となるネットワークが名前空間間のネットワーク分離を提供しない場合、2つのポッドは互いにアクセスできます。

おすすめ

転載: blog.51cto.com/14051317/2553690
おすすめ