003.kubernets对于namespace的管理

摘要:
1.Kuberbetes架构简要介绍了1.1云计算的传统分类1.2。Kubernetes基础设施工作机制用户通过kubectl向api服务器提交要运行的pod描述。api服务器接收请求并将相关描述存储到etcdscheduler以监视api服务器以获取相关描述信息,开始扫描节点节点,找到满足条件的节点节点,并将pod和节点之间的对应关系写入etcdKubelet定时请求api

一 Kuberbetes的架构简单介绍

1.1 云计算的传统分类

003.kubernets对于namespace的管理第1张

1.2 kubernetes基础架构

003.kubernets对于namespace的管理第2张

工作机制

003.kubernets对于namespace的管理第3张

  • 用户通过kubectl向api-server提交需要运行的pod描述
  • api-server接收请求并将相关描述存储到etcd
  • scheduler 监控api-server拿到相关描述信息,开始扫描node节点,找到满足条件的node节点,将Pod与node的对应关系写入etcd
  • Kubelet定时请求api-server,拿到需要在本机运行的Pod信息,运行起来
  • 用户提交RC描述,rc控制器监视集群中的容器并保持数量
  • 用户提交service描述,由kube-proxy负责具体的工作流量转发

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

003.kubernets对于namespace的管理第4张

[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/)本人同意即可转载,谢谢!

免责声明:文章转载自《003.kubernets对于namespace的管理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇自动化运维工具之Puppet基础入门Qt --- 信号槽:第五个参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker pull报x509问题及docker启动失败问题解决

docker pull 报x509 最近通过docker pull拉取私有仓库镜像出错,具体报错(证书问题): docker pull 私有仓库ip/资源路径 x509: certificate has expired or is not yet valid 要注意。如果报509问题通常两方面原因: 1.系统时间不同步 2.证书问题,daemon.js...

在浏览器上开发GO和Vue!(基于code-server)

在浏览器上开发GO和Vue!(基于code-server) 曾几何时,开发者们都被安装编程环境苦恼,尽管现在很多语言的开发环境已经不难装了,但是如果我们能有一个运行在云端的编译器,那么我们就可以随时随地通过浏览器编写、编译我们的代码啦!! 先看我们最终效果: 完美运行Go程序!下面开始整个环境搭建。 打包好的镜像 配置完成的Go+Vue的编译+Debug...

Docker-Compose学习使用

1. 什么是docker-compose Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使...

Nacos环境隔离 namespace

nacos服务分级存储模型 namespace:相当于环境,开发环境  测试环境  生产环境 ,每个空间里面的配置是独立的 (默认是 public) group:这个类似我们的项目,比如 风控系统 ,交易系统, 就是不同的项目 创建namespace,用来隔离不同环境 配置application.yml spring.cloud.nacos.dis...

修改docker 容器的存储地址 &amp;amp; docker &amp;amp; container &amp;amp; wsl &amp;amp; win10

HowTo: Change Docker containers storage location with WSL2 on Windows 10 Once I started playing with Docker on Windows it quickly turned out that latest version heavily rely on WS...

manjaro安装docker,配置镜像拉取加速器

1、安装docker:sudo pacman -S docker2、启动docker服务:sudo systemctl start docker 3、设置docker开机启动服务:sudo systemctl enable docker4、用daocloud的镜像加速服务配置加速器:修改配置文件 sudo vim /etc/docker/daemon.j...