侧边栏壁纸
博主头像
小周的知识站 博主等级

行动起来,活在当下

  • 累计撰写 80 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录
K8S

K8S资源管理Namespace

Administrator
2024-07-15 / 0 评论 / 0 点赞 / 8 阅读 / 0 字

K8S资源管理Namespace

Namespace(命名空间)是kubernetes系统中的一种非常重要的资源,它的主要作用是用来实现多套环境的资源隔离(例如生活中的房间)

默认情况下Kubernetes集群中的所有Pod都是可以互相访问的,但如果Pod内运行的应用(例如:nginx与http)之间发生冲突,那此时就可以将不同的Pod划分到不同的Namespace(命名空间)进行隔离,可以形成逻辑上的“组”

案例:以一个namespace(命名空间)的创建和删除简单演示命令用法

资源名称

缩写

资源作用

namespaces

ns

隔离pod

查看ns信息
# kubectl get ns
calico-apiserver  calico网络资源命名空间
calico-system     calico网络资源命名空间
default           默认的命名空间,所有未指定的Pod都会被分配在该空间下
kube-node-lease   集群节点之间的心跳维护
kube-public       该命名空间下的资源可以被所有人访问,包括未认证的用户
kube-system       所有由k8s系统创建的资源都处于这个命名空间
tigera-operator   calico网络资源命名空间

查看指定ns的信息
# kubectl get pod -n kube-system

创建一个名为dev的ns
# kubectl create ns dev
# kubectl get ns

删除ns
# kubectl  delete -n dev

1 资源管理之YAML语言

K8S中几乎所有的资源都可以通YAML编排来创建。

YAML是一个类似于XML、JSON的标记性语言,它强调以数据为中心,并不是以标识语言为重点,应为YAML本身的定义比较简单,号称“一种人性化的数据格式语言”。


2 YAML的语法特点

  • 严格区分大小写

  • 使用缩进表示层级关系

  • 低版本缩进不允许使用tab键,只允许使用空格,缩进的空格数量没有严格要求,只要相同层级左对齐即可

  • # 号表示注释

  • 书写YAML切记 : 后边要加一个空格

  • 如果需要将多段YAML配置放在同一个文件中,中间需要用 --- 作为分格

3 YAML常用数据结构

  • 对象(Object):键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表 (list)

对象类型:对象的一组键值对,使用冒号结构表示

#对象形式一(推荐)
个人信息:
  name: zhangsan
  age: 30
  address: tianjin
 
#对象形式二(了解)
个人信息: {name: zhangsan,age: 30,address: tianjin}

数组类型:一组连词线开头的行,构成一个数组

- 联系方式:
  phone: 138****6789
  QQ: 
  WeChat:
  emal:

复合结构:对象和数组可以结合使用,形成复合结构

个人信息: 
  name: zhangsan
  age: 30
  address: tianjin
  - 联系方式: 
    phone:
    QQ:
    WeChat:
    emal:

4 K8S资源对象描述

在kubernetes中基本所有资源的一级属性都是一样的,主要分为五部分:

  • apiVersion:资源版本,由k8s内部定义,版本号必须可以通过kubectl api-versions 查询到

  • kind:资源类型,由k8s内部定义,类型必须可以通过kubectl api-resources查询到

  • metadata:元数据,主要是指定资源标识与说明,常用的有name、namespace、labels等

  • spec:资源描述,这是配置中最重要的一部分,里边对各种资源配置的详细描述

  • status:资源状态信息,里边的内容不需要定义,有k8s自动生成

5 YAML文件创建资源

案例:通过yaml文件创建一个test命名空间

kubect explain 资源名称 #explain用于查看资源文档

格式:kubectl explain ns #查看ns文档

查看子属性用 · 作为分隔,例如:kubectl explain ns.metadata

# vim ns_test.yaml
apiVersion: v1
kind: Namespace
metadata:
    name: test

执行ns_test.yaml文件创建ns
# kubectl create -f ns_test.yaml


查看ns信息
# kubectl get ns
test

通过yaml文件删除ns
# kubectl delete -f ns_test.yaml

0
K8S
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区