侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

五、Kubernetes集群命名空间namespace

芳华是个男孩!
2024-10-15 / 0 评论 / 0 点赞 / 9 阅读 / 0 字
广告 广告

一、命名空间 (namespace)

Namespace是对一组资源和对象的抽象集合.
常见的 pod, service, deployment 等都是属于某一个namespace的默认是 default)
不是所有资源都属于namespace,如nodes, persistent volume, namespace 等资源则不属于任何 namespace

二、查看namespace

kubectl get namespaces

[root@master ~]# kubectl get namespaces      #namespaces可以简写为namespace或ns
NAME              STATUS   AGE
default           Active   2d6h   # 所有未指定 Namespace的对象都会被默认分配在default命名空间
kube-node-lease   Active   2d6h  
kube-public       Active   2d6h   # 此命名空间下的资源 可以被所有人访问
kube-system       Active   2d6h  # 所有由Kubernetes 系统创建的资源都处于这个命名空间

三、查看nmespace里的资源

使用kubectl get all --namespace=命名空间名称可以查看此命名空间 下的所有资源

[root@k8s-master01 ~]# kubectl get all --namespace=kube-system
NAME                                       READY   STATUS    RESTARTS   AGE
pod/coredns-57d4cbf879-9xxfd               1/1     Running   3          41h
pod/coredns-57d4cbf879-dq5kk               1/1     Running   3          41h
pod/etcd-k8s-master01                      1/1     Running   3          41h
pod/etcd-k8s-master02                      1/1     Running   3          41h
pod/etcd-k8s-master03                      1/1     Running   3          41h
pod/kube-apiserver-k8s-master01            1/1     Running   4          41h
pod/kube-apiserver-k8s-master02            1/1     Running   3          41h
pod/kube-apiserver-k8s-master03            1/1     Running   5          41h
pod/kube-controller-manager-k8s-master01   1/1     Running   3          41h
pod/kube-controller-manager-k8s-master02   1/1     Running   3          41h
pod/kube-controller-manager-k8s-master03   1/1     Running   3          41h
pod/kube-proxy-8d4ms                       1/1     Running   3          41h
pod/kube-proxy-d2725                       1/1     Running   2          41h
pod/kube-proxy-ldmsj                       1/1     Running   3          41h
pod/kube-proxy-mcsqk                       1/1     Running   2          41h
pod/kube-proxy-slt7g                       1/1     Running   2          41h
pod/kube-proxy-tpsrq                       1/1     Running   3          41h
pod/kube-proxy-zfzd4                       1/1     Running   2          41h
pod/kube-scheduler-k8s-master01            1/1     Running   4          41h
pod/kube-scheduler-k8s-master02            1/1     Running   3          41h
pod/kube-scheduler-k8s-master03            1/1     Running   3          41h
pod/metrics-server-6bf679fb9b-6wvhh        1/1     Running   3          41h
pod/metrics-server-6bf679fb9b-q2z2f        1/1     Running   3          41h

NAME                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
service/kube-dns         ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP,9153/TCP   41h
service/metrics-server   ClusterIP   10.96.197.146   <none>        443/TCP                  41h

NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
daemonset.apps/kube-proxy   7         7         7       7            7           kubernetes.io/os=linux   41h

NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/coredns          2/2     2            2           41h
deployment.apps/metrics-server   2/2     2            2           41h

NAME                                        DESIRED   CURRENT   READY   AGE
replicaset.apps/coredns-57d4cbf879          2         2         2       41h
replicaset.apps/metrics-server-6bf679fb9b   2         2         2       41h

使用kubectl get 资源类型 --namespace=命名空间名称可以查看此命名 空间下的对应的资源
kubectl get pod --namespace=kube-system

[root@k8s-master01 ~]# kubectl get pods -n gh-pod 
NAME                     READY   STATUS    RESTARTS   AGE
nginx-54fddcf8d5-6h8gp   1/1     Running   0          40h
nginx-54fddcf8d5-9rlc8   1/1     Running   0          40h
nginx-54fddcf8d5-lvb2g   1/1     Running   0          40h
nginx-54fddcf8d5-sz9nd   1/1     Running   0          40h
nginx-54fddcf8d5-t8mpc   1/1     Running   0          40h

[root@k8s-master01 ~]# kubectl get pods --namespace=gh-pod 
NAME                     READY   STATUS    RESTARTS   AGE
nginx-54fddcf8d5-6h8gp   1/1     Running   0          40h
nginx-54fddcf8d5-9rlc8   1/1     Running   0          40h
nginx-54fddcf8d5-lvb2g   1/1     Running   0          40h
nginx-54fddcf8d5-sz9nd   1/1     Running   0          40h
nginx-54fddcf8d5-t8mpc   1/1     Running   0          40h

使用kubectl get all查看某个命令空间下详细的pod资源

[root@k8s-master01 ~]# kubectl get all --namespace=gh-pod 
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-54fddcf8d5-6h8gp   1/1     Running   0          40h
pod/nginx-54fddcf8d5-9rlc8   1/1     Running   0          40h
pod/nginx-54fddcf8d5-lvb2g   1/1     Running   0          40h
pod/nginx-54fddcf8d5-sz9nd   1/1     Running   0          40h
pod/nginx-54fddcf8d5-t8mpc   1/1     Running   0          40h

NAME            TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
service/nginx   NodePort   10.103.122.241   <none>        80:32037/TCP   40h

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   5/5     5            5           40h

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-54fddcf8d5   5         5         5       40h

[root@k8s-master01 ~]# kubectl get all -n gh-pod 
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-54fddcf8d5-6h8gp   1/1     Running   0          40h
pod/nginx-54fddcf8d5-9rlc8   1/1     Running   0          40h
pod/nginx-54fddcf8d5-lvb2g   1/1     Running   0          40h
pod/nginx-54fddcf8d5-sz9nd   1/1     Running   0          40h
pod/nginx-54fddcf8d5-t8mpc   1/1     Running   0          40h

NAME            TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
service/nginx   NodePort   10.103.122.241   <none>        80:32037/TCP   40h

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   5/5     5            5           40h

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-54fddcf8d5   5         5         5       40h

使用kubectl get pods -A查看所有命名空间下运行的pod

[root@k8s-master01 ~]# kubectl get pods -A
NAMESPACE          NAME                                       READY   STATUS    RESTARTS   AGE
calico-apiserver   calico-apiserver-9499956d-ncqxx            1/1     Running   7          41h
calico-apiserver   calico-apiserver-9499956d-z2hls            1/1     Running   7          41h
calico-system      calico-kube-controllers-77b5cb49c9-dwvqs   1/1     Running   4          41h
calico-system      calico-node-28dw4                          1/1     Running   3          41h
calico-system      calico-node-597vh                          1/1     Running   2          41h
calico-system      calico-node-5nlf6                          1/1     Running   2          41h
calico-system      calico-node-6c7t6                          1/1     Running   4          41h
calico-system      calico-node-7572t                          1/1     Running   3          41h
calico-system      calico-node-cpj49                          1/1     Running   5          41h
calico-system      calico-node-jg9jm                          1/1     Running   2          41h
calico-system      calico-typha-5f8fcbcdf9-7ftx5              1/1     Running   3          41h
calico-system      calico-typha-5f8fcbcdf9-vctgx              1/1     Running   4          41h
calico-system      calico-typha-5f8fcbcdf9-zgcvv              1/1     Running   4          41h
gh-pod             nginx-54fddcf8d5-6h8gp                     1/1     Running   0          40h
gh-pod             nginx-54fddcf8d5-9rlc8                     1/1     Running   0          40h
gh-pod             nginx-54fddcf8d5-lvb2g                     1/1     Running   0          40h
gh-pod             nginx-54fddcf8d5-sz9nd                     1/1     Running   0          40h
gh-pod             nginx-54fddcf8d5-t8mpc                     1/1     Running   0          40h
kube-system        coredns-57d4cbf879-9xxfd                   1/1     Running   3          41h
kube-system        coredns-57d4cbf879-dq5kk                   1/1     Running   3          41h
kube-system        etcd-k8s-master01                          1/1     Running   3          41h
kube-system        etcd-k8s-master02                          1/1     Running   3          41h
kube-system        etcd-k8s-master03                          1/1     Running   3          41h
kube-system        kube-apiserver-k8s-master01                1/1     Running   4          41h
kube-system        kube-apiserver-k8s-master02                1/1     Running   3          41h
kube-system        kube-apiserver-k8s-master03                1/1     Running   5          41h
kube-system        kube-controller-manager-k8s-master01       1/1     Running   3          41h
kube-system        kube-controller-manager-k8s-master02       1/1     Running   3          41h
kube-system        kube-controller-manager-k8s-master03       1/1     Running   3          41h
kube-system        kube-proxy-8d4ms                           1/1     Running   3          41h
kube-system        kube-proxy-d2725                           1/1     Running   2          41h
kube-system        kube-proxy-ldmsj                           1/1     Running   3          41h
kube-system        kube-proxy-mcsqk                           1/1     Running   2          41h
kube-system        kube-proxy-slt7g                           1/1     Running   2          41h
kube-system        kube-proxy-tpsrq                           1/1     Running   3          41h
kube-system        kube-proxy-zfzd4                           1/1     Running   2          41h
kube-system        kube-scheduler-k8s-master01                1/1     Running   4          41h
kube-system        kube-scheduler-k8s-master02                1/1     Running   3          41h
kube-system        kube-scheduler-k8s-master03                1/1     Running   3          41h
kube-system        metrics-server-6bf679fb9b-6wvhh            1/1     Running   3          41h
kube-system        metrics-server-6bf679fb9b-q2z2f            1/1     Running   3          41h
kuboard            kuboard-agent-2-6f94fbc8c6-47888           1/1     Running   6          41h
kuboard            kuboard-agent-7fbf4df7f6-crk4b             1/1     Running   9          41h
kuboard            kuboard-etcd-kl7bx                         1/1     Running   3          41h
kuboard            kuboard-etcd-lxhdm                         1/1     Running   3          41h
kuboard            kuboard-etcd-wwrbm                         1/1     Running   3          41h
kuboard            kuboard-pv-browser-5982g                   2/2     Running   208        40h
kuboard            kuboard-pv-browser-8w948                   2/2     Running   209        40h
kuboard            kuboard-pv-browser-f9s57                   2/2     Running   209        40h
kuboard            kuboard-pv-browser-mrfjm                   2/2     Running   208        40h
kuboard            kuboard-pv-browser-qb6hq                   2/2     Running   208        40h
kuboard            kuboard-pv-browser-rl7lw                   2/2     Running   209        40h
kuboard            kuboard-pv-browser-xgh89                   2/2     Running   208        40h
kuboard            kuboard-questdb-85547c8f8d-bblkp           1/1     Running   3          41h
kuboard            kuboard-v3-5fc46b5557-h9lk8                1/1     Running   3          41h
tigera-operator    tigera-operator-6fdc4c585-hn7k8            1/1     Running   5          41h

三、创建namespace

1.命令创建

[root@k8s-master01 ~]# kubectl create namespace fh
namespace/fh created

[root@k8s-master01 ~]# kubectl get ns
NAME               STATUS   AGE
calico-apiserver   Active   41h
calico-system      Active   41h
default            Active   41h
fh                 Active   10s
gh-pod             Active   40h
kube-node-lease    Active   41h
kube-public        Active   41h
kube-system        Active   41h
kuboard            Active   41h
tigera-operator    Active   41h

2.YAML文件创建namespace

  • k8s中几乎所有的资源都可以通这YAML编排来创建
  • 可以使用kubectl edit 资源类型 资源名编辑资源的YAML语法
kubectl edit namespace ns1
  • 也可以使用kubctl get 资源类型 资源名 -o yaml来查看
kubectl get ns ns1 -o yaml
  • 还可以通过kubectl explain 资源类型看语法文档
kubectl explain namespace     #查看namespace语法参数
kubectl explain namespace.metadata       #查看namespace下级metadata的相关语法参数
kubectl explain namespace.metadata.name     #查看namespace下级metadata的再下级name的相关语法参数

编写创建namespace的YAML文件

[root@k8s-master01 ~]# cat <<EOF > create_ns2.yaml
apiVersion: v1            #指定api版本号
kind: Namespace            #类型为namespace
metadata:                #定义namespace的元数据属性
  name:  ns2            #定义name属性为ns2
EOF

使用kubectl apply -f应用YAML文件

#检查YAML文件是否存在语法错误
[root@k8s-master01 ~]# kubectl apply -f create_ns2.yaml --dry-run=client
namespace/ns2 created (dry run)

#应用YAML文件
[root@k8s-master01 ~]# kubectl apply -f create_ns2.yaml
namespace/ns2 created
[root@k8s-master01 ~]# kubectl get ns
NAME               STATUS   AGE
calico-apiserver   Active   41h
calico-system      Active   42h
default            Active   42h
fh                 Active   23m
gh-pod             Active   41h
kube-node-lease    Active   42h
kube-public        Active   42h
kube-system        Active   42h
kuboard            Active   41h
ns2                Active   5s
tigera-operator    Active   42h

四、删除namespace

注意

  • 删除一个namespace会自动删除所有属于该namespace的资源(类似mysql中drop库会删除库里的所有表一样,请慎重操作)
  • default,kube-system,kube-public命名空间不可删除

1、命令行删除

[root@k8s-master01 ~]# kubectl delete namespaces fh
namespace "fh" deleted
[root@k8s-master01 ~]# kubectl get ns
NAME               STATUS   AGE
calico-apiserver   Active   42h
calico-system      Active   42h
default            Active   42h
gh-pod             Active   41h
kube-node-lease    Active   42h
kube-public        Active   42h
kube-system        Active   42h
kuboard            Active   42h
ns2                Active   7m57s
tigera-operator    Active   42h

2、从YAML文件删除

[root@k8s-master01 ~]# kubectl delete -f create_ns2.yaml
namespace "ns2" deleted
[root@k8s-master01 ~]# kubectl get ns
NAME               STATUS   AGE
calico-apiserver   Active   42h
calico-system      Active   42h
default            Active   42h
gh-pod             Active   41h
kube-node-lease    Active   42h
kube-public        Active   42h
kube-system        Active   42h
kuboard            Active   42h
tigera-operator    Active   42h
0
k8s
广告 广告

评论区