zoukankan      html  css  js  c++  java
  • kubernets之namespace

    一 命名空间的介绍以及作用

      1  概念

        为了方便不同部门之间对kubernets集群的使用,并且对其进行有效的隔离,kubernets提供了一种资源隔离手段,通过将各种不同资源分组到

    一个区域,并且统一管理,这个区域的名称叫做命名空间

      2 使用

        查询kubernets集群内部的所有命名空间

    [root@node01 ~]# k get ns
    NAME                 STATUS                   AGE
    default              Active                   26h
    kube-node-lease      Active                   26h
    kube-public          Active                   26h
    kube-system          Active                   26h

      3 查询kube-system空间的pod资源

    [root@node01 ~]# k get po -n kube-system
    NAME                             READY   STATUS    RESTARTS   AGE
    coredns-fb8b8dccf-gfkss          1/1     Running   1          26h
    coredns-fb8b8dccf-tjr6m          1/1     Running   1          26h
    etcd-master                      1/1     Running   1          26h
    kube-apiserver-master            1/1     Running   0          26h
    kube-controller-manager-master   1/1     Running   1          26h
    kube-flannel-ds-b95br            1/1     Running   0          26h
    kube-flannel-ds-mwlgl            1/1     Running   0          26h
    kube-flannel-ds-w4mvw            1/1     Running   0          26h
    kube-proxy-2h9ck                 1/1     Running   0          26h
    kube-proxy-qprh7                 1/1     Running   0          26h
    kube-proxy-z6nwk                 1/1     Running   0          26h
    kube-scheduler-master            1/1     Running   1          26h

      4 创建一个命名空间

    [root@node01 pod]# k create -f custom-namespace.yml
    namespace/custom-namespace created
    [root@node01 pod]# cat custom-namespace.yml
    apiVersion: v1
    kind: Namespace
    metadata:
    name: custom-namespace

      5 如何在刚创建的命名空间创建资源

        5.1 通过在资源的ym文件的metadata的属性里面的namesapce里面指定

    apiVersion: v1
    kind: Pod
    metadata:
    name: kubia-manual-namespace
    namespace: custom-namespace
    spec:
    containers:
    - image: luksa/kubia
    name: kubia
    ports:
    - containerPort: 8080
    protocol: TCP
    

        在集群查询该pod的信息,在default没查到,在custom-namespace里面查询到该pod信息

    [root@node01 pod]# k get po
    NAME                       READY   STATUS    RESTARTS   AGE
    kubia-manual               1/1     Running   0          21h
    kubia-manual-gpu           1/1     Running   0          172m
    kubia-manual-with-labels   1/1     Running   0          4h14m
    [root@node01 pod]# k get po -n custom-namespace
    NAME                     READY   STATUS              RESTARTS   AGE
    kubia-manual-namespace   0/1     ContainerCreating   0          17s

         5.2 也可通过创建时指定参数 -n和命名空间来指定

    kubectl create -f kubia-manual.yam1 -n custom-namespaces
    pod ”kubia-manual" created

      

       5.3 如何修改目前的命名空间 

    export namespace=XXXX
    kubectl config set-context $(kubectl config current-context) --namespace=${namespace}
    unset  namespace

      6 命名空间提供的隔离

        命名空间很大程度上提供了不同命名空间之间的资源隔离,但是却不是绝对的隔离,例如,不同的命名空间之间的pod是否可以互相通信

      取决于集群内部使用的网络插件,当使用的网络插件允许的情况下,不同命名空间之间的pod仍然可以互相通信

  • 相关阅读:
    bzoj 3262: 陌上花开
    hdu 5618 Jam's problem again
    bzoj 1176: [Balkan2007]Mokia
    bzoj 2683: 简单题
    Codevs 1080 线段树练习(CDQ分治)
    bzoj 3223: Tyvj 1729 文艺平衡树
    bzoj 1503: [NOI2004]郁闷的出纳员
    bzoj 1208: [HNOI2004]宠物收养所
    bzoj 1588: [HNOI2002]营业额统计
    bzoj 3224: Tyvj 1728 普通平衡树
  • 原文地址:https://www.cnblogs.com/wxm-pythoncoder/p/14172696.html
Copyright © 2011-2022 走看看