Kubernetes 原理与概念

发布时间: 更新时间: 总字数:1091 阅读时间:3m 作者: 分享 复制网址

原理

基本概念

资源 & 对象

  • workload:Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob,。。。
  • 服务发现及服务均衡:Service,Ingress
  • 配置与存储:Volume,CSI
    • ConfigMap
    • Secret
    • DownwardAPI
  • 集群资源
    • Namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding
  • 元数据型资源
    • HPA,PodTemplate,LimitRange
kubernetes resource

资源创建过程

  • apiserver 仅接受 JSON 格式的资源定义
  • yaml 格式提供配置清单,apiserver 可自动将其转为 Json,而后在提交

资源配置清单

API Server 接受和返回的对象遵循统一模式,大多数对象和列表类资源嵌套类型的字段如下:

  • apiVersion:group/version,使用 kubectl api-resources 命令获取
  • kind:资源类别
  • metadata:资源元数据信息。如名称、命令空间、标签等
    • name
    • namespace
    • labels 格式为:key=value
      • key:字母、数字、_、-
      • value:可以为空,只能以字母或数字开头和结尾
    • annotations:与 labels 不同之处在于,它不能用于挑选资源对象,仅用于为对象提供 元数据,采用 kubectl annotate KEY_1=VAL_1
    • 格式:/KEY1=VAL1
    • selfLink:每个资源的引用Path,/api/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME
  • spec:用于定义用户期望的状态(disired state)
    • 标签选择器
      • matchLables:键值对
      • matchExpressions:通过表达式定义标签选择器:{“key”: “KEY”, operator: “OPERATOR”, values: [VAL1, VAL2, …]}
        • OPERATOR 操作符包括:
          • IN,NotIn:values 字段的值必须为非空类别
          • Exists,NotExists:values 字段的值必须为空列表
      • 等值关系:=,==,!=
      • 集合关系
        • KEY in (VAL1, VAL2, …)
        • KEY notin (VAL1, VAL2, …)
        • KEY:存在健名标签的资源
        • !KEY:不存在健名标签的资源
    • nodeSelector <map[string]string> 节点标签选择器
    • nodeName 指定节点名称
  • status:记录活动对象的当前状态(current state),由 Kubernetes 系统维护,对用户来说是只读字段

labels

标签键:

  • 格式:<前缀>/<名称>
  • 前缀:可选,DNS 子域:由点(.)分隔的一系列 DNS 标签,总共不超过 253 个字符
  • 名称:必须,小于等于 63 个字符,以字母数字字符([a-z0-9A-Z])开头和结尾,中间可以包含:破折号(-)、下划线(_)、点(.)

标签值:

  • 必须为 63 个字符或更少(可以为空)
  • 除非标签值为空,必须以字母数字字符([a-z0-9A-Z])开头和结尾
  • 包含破折号(-)、下划线(_)、点(.)和字母或数字

基本概念

  • Federation :
    • K8s的设计定位是单一集群在同一个地域内,因为同一个地区的网络性能才能满足K8s的调度和计算存储连接要求。
    • 联合集群服务就是为提供跨Region跨服务商K8s集群服务而设计的。
最新评论
加载中...
Home Archives Categories Tags Statistics