其他分享
首页 > 其他分享> > 003.kubernets对于namespace的管理

003.kubernets对于namespace的管理

作者:互联网

一 Kuberbetes的架构简单介绍

1.1 云计算的传统分类

1.2 kubernetes基础架构

 

工作机制

1.3 创建一个容器的步骤

  1. 镜像从哪里获取以及版本号
  2. 镜像仓库是否需要认证,如果需要,请提供认证密钥
  3. 容器如果挂掉了,是否需要重启
  4. 容器是否需要挂载持久存储
  5. 是否为容器指定自己的dns
  6. 是否指定容器运行的节点
  7. 是否需要传递环境变量
  8. 容器启动之后,是否需要执行某些操作
  9. 容器在销毁时,是否需要执行某些操作
  10. 在什么情况下,我们认为容器是存活的
  11. 在什么情况下,我们认为容器是可以提供服务的
  12. 在容器启动之前,是否还需要做一些准备工作

在前面已经安装完成一个kubernetes的集群

[root@docker-server1 ~]# kubectl get nodes

NAME              STATUS   ROLES    AGE    VERSION
192.168.132.131   Ready    master   105m   v1.17.0
192.168.132.132   Ready    <none>   92m    v1.17.0
192.168.132.133   Ready    <none>   90m    v1.17.0

[root@docker-server1 ~]# kubectl get pods -n kube-system      

NAME                                      READY   STATUS    RESTARTS   AGE
coredns-6955765f44-8kxdg                  1/1     Running   0          108m
coredns-6955765f44-m66bw                  1/1     Running   0          108m
etcd-192.168.132.131                      1/1     Running   0          108m
kube-apiserver-192.168.132.131            1/1     Running   0          108m
kube-controller-manager-192.168.132.131   1/1     Running   0          108m
kube-flannel-ds-amd64-dbckr               1/1     Running   0          95m
kube-flannel-ds-amd64-fg972               1/1     Running   0          93m
kube-flannel-ds-amd64-m9lgq               1/1     Running   0          104m
kube-proxy-7xgt9                          1/1     Running   0          95m
kube-proxy-k8kb7                          1/1     Running   0          93m
kube-proxy-q867d                          1/1     Running   0          108m
kube-scheduler-192.168.132.131            1/1     Running   0          108m

 kubectl 主要管理集群中的资源对象,容器也是资源

1.4 常用资源介绍

Node
Namespace
Container
Pod
Label
Annotations
ReplicaController
ReplicaSet
Deployment
HPA
Service
Job

资源对象:分为集群级别资源(node,pv,clusterrole)和命名空间级别资源(pods)

node:节点,node不属于任何命名空间,是集群资源

二 namespace的简单操作

集群安装的时候会自动帮助我们创建几个namesapce,查看namespace

2.1 查看

[root@docker-server1 ~]# kubectl get ns

NAME                   STATUS   AGE
default                Active   137m
kube-node-lease        Active   137m
kube-public            Active   137m
kube-system            Active   137m
kubernetes-dashboard   Active   82m

kubectl get pods -n kube-system 这个操作就是查看kube-system 这个命名空间所有的容器

当我们执行kubectl get pods,不指定命名空间的话 ,就去查询default这个默认的命名空间,但是没任何容器运行

[root@docker-server1 ~]# kubectl get pods

No resources found in default namespace.

2.3 创建一个命名空间

[root@docker-server1 ~]# kubectl create ns projecta

也可以通过提交资源描述文件进行创建

[root@docker-server1 ~]# kubectl get ns

NAME                   STATUS   AGE
default                Active   171m
kube-node-lease        Active   171m
kube-public            Active   171m
kube-system            Active   171m
kubernetes-dashboard   Active   116m
projecta               Active   6s

2.3  删除namespace

[root@docker-server1 ~]# kubectl delete ns projecta

[root@docker-server1 ~]# kubectl get ns

NAME                   STATUS   AGE
default                Active   173m
kube-node-lease        Active   173m
kube-public            Active   173m
kube-system            Active   173m
kubernetes-dashboard   Active   117m

命名空间的命名规范

[root@docker-server1 ~]# kubectl create ns Projecta

The Namespace "Projecta" is invalid: metadata.name: Invalid value: "Projecta": a DNS-1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name',  or '123-abc', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?')

从这里就可以看到规则

2.4 资源描述文件操作namespace

[root@docker-server1 ~]# mkdir -p /yamls/namespace

[root@docker-server1 ~]# cd /yamls/namespace

[root@docker-server1 namespace]# vim projectb.yaml

apiVersion: v1       #API版本
kind: Namespace      #资源类型
metadata:     
  name: projectb     #命名空间名称

[root@docker-server1 namespace]# kubectl apply -f projectb.yaml

[root@docker-server1 namespace]# kubectl get ns

NAME                   STATUS   AGE
default                Active   3h18m
kube-node-lease        Active   3h18m
kube-public            Active   3h18m
kube-system            Active   3h18m
kubernetes-dashboard   Active   142m
projectb               Active   19s

删除命名空间

[root@docker-server1 namespace]# kubectl delete -f projectb.yaml

[root@docker-server1 namespace]# kubectl get ns

NAME                   STATUS   AGE
default                Active   3h18m
kube-node-lease        Active   3h18m
kube-public            Active   3h18m
kube-system            Active   3h18m
kubernetes-dashboard   Active   142m

 

命名空间简单介绍到这里


博主声明:本文的内容来源主要来自誉天教育晏威老师,由本人实验完成操作验证,需要的博友请联系誉天教育(http://www.yutianedu.com/),获得官方同意或者晏老师(https://www.cnblogs.com/breezey/)本人同意即可转载,谢谢!

标签:kubectl,kubernets,namespace,server1,003,Active,docker,kube,root
来源: https://www.cnblogs.com/zyxnhr/p/12182513.html