Kubernetes 強大的namespace


NameSpace作用
初識:java的Package,Python的模塊,C++的Namespace

Namespace(命名空間)是kubernetes系統中的另一個非常重要的概念,簡稱:NS,NS在很多情況下用於實現多租戶的資源隔離

例子:cms項目用到數據庫,商場項目也需要數據庫,同一個namespace下面不允許出現兩個service叫mysql。

隔離對象:

  • 資源對象的隔離:Service、Deployment、Pod
  • 資源配額的隔離:Cpu、Memory

NameSpace划分方式

  • 按環境划分:dev、test
  • 按團隊划分
  • 自定義多級划分

NameSpace管理命令

// 創建namespace
kubectl create namespace test

// 查看已創建的namespace
kubectl get namespace
 
// 刪除namespace(會將該命名空間下的所有service都會刪除)
kubectl delete namespace test

// 查看所有namespace下的所有資源
kubectl get all --all-namespaces

NameSpce案例
1、yaml方式創建NS

apiVersion: v1
kind: Namespace
metadata:
  name: dev

2、創建Pod並指定NS

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myweb
  # 指定namespace
  namespace: dev
spec:
  replicas: 2
  selector:
    matchLabels:
      name: myweb
  template:
    metadata:
      labels:
        name: myweb
    spec:
      containers:
      - name: nginx
        image: 10.0.0.33/base_images/mynginx:4.0
        ports:
          - containerPort: 80
---
# service
apiVersion: v1
kind: Service
metadata:
  name: myweb
  # 指定namespace
  namespace: dev
spec:
  type: NodePort
  selector:
    name: myweb
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30010

3、檢查對應的pod是否在dev名稱空間下運行

[root@k8s-master01 Namespace]# kubectl get pods -n dev
NAME                     READY   STATUS    RESTARTS   AGE
myweb-689c79c879-l8875   1/1     Running   0          5m30s
myweb-689c79c879-lcfkz   1/1     Running   0          5m30s


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM