kubernetes(k8s)资源管理/清单配置基础

控制平面:

  • API-Service: 运行于6443端口

    • 接入master节点地址的6443端口进行交互
    • 用户认证, 双向认证
  • Scheduler
  • Controller

工作平面:kube-proxy每个节点都有

核心资源:

  • Pod
  • Pod Controller
    • deployment
    • Service

和解循环(Reconciliation Loop)

  • 客户端向API Server提交POST请求以创建对象

    • 通过JSON格式的body提交
    • Yaml格式需要事先完成向JSON的转换
    • 对象匹配信息保存于etcd中,其定义出的状态也称为“期望的状态(spec)”
  • 控制器负责将其创建为k8s集群上的具体对象,并确保其当前状态(status)与用户定义的期望状态相同
    • status控制器自行维护,而spec则由用户进行提交
    • 活动对象在运行过程中因节点故障等原因可能会在某一时刻导致status不再吻合于spec
    • 控制器通过和解循环(loop)不间断地监控相关对象的当前状态,在对象的当前状态发生改变时运行合适的操作让其当前状态无限接近于期望的状态

资源对象的配置格式

  • API Server接受和返回的所有JSON对象都遵循同一个模式,他们都具有“kind”和"apiVersion"字段,用于表示对象所属的资源类型、API群组及相关版本
  • 大多数的对象或列表的资源还需要具有三个嵌套的字段metadata、spec、和status
    • metadata字段为资源提供元数据信息,例如名称、隶属的名称空间和标签等
    • spec用于定义用户期望的状态,不同的资源类型,其状态的意义各不相同,例如pod资源最为核心的功能在于运行容器
    • status则记录着活动对象的当前状态信息,它由kubernetes系统自行维护,对用户来说是只读字段
  • “kubectl  api-resources”命令可以获取集群支持所使用的所有资源类型

管理资源对象

资源对象管理方式

  • kubectl的命令可分为三类

    • 陈述式命令
    • 陈述式对象配置
    • 声明式对象配置
  • 第一种方式即用到的run、expose、delete和get等命令,它们直接作用于kubernetes系统上的活动对象,简单易用,但不支持代码服用、修改复审及审计日志功能,这些功能的实现通常要依赖于资源配置文件中这些文件也被称为资源清单。

我们可以使用以下命令快速导出资源的yaml文件,但是需要在导出的文件上做自己的配置修改后才能使用:

  # kubectl get  xxx  -o yaml --export > desc_file

陈述式配置文件创建一个develop的namespace:

声明式创建test的namespace:

  • 声明式相比于陈述式的好处是:修改了yaml文件之后直接apply就可以完成修改变动,而create不行
  • apply可以直接指定一个目录,目录中的配置清单会被全部应用,而create不支持

♠♠♠ pod 10.244.0.0/16 能否被集群外部访问? 10.244.0.0/16是flannel网络插件内部网段 ♠♠♠

  • 默认情况下答案是不能的
  • 解决办法
    • 通过service NodePort 暴露每个节点上的一个端口映射
    • 通过hostPort 暴露指定节点端口
    • 通过hostNetwork 共享宿主机端口网络

原文地址:https://www.cnblogs.com/alamisu/p/10976749.html

时间: 2024-07-30 11:19:36

kubernetes(k8s)资源管理/清单配置基础的相关文章

Kubernetes/5.Pod资源清单配置基础

Pod资源清单配置基础 Docker中我们都说容器.docker,大家耳熟能详.但到了kubernetes中,这个专有名词仿佛就被"取而代之"了.kubernetes的语境中,我们将一个容器集合称之为Pod What is Pod? Pod的特征 Pod对象的配置格式 Pod对象的申明类型 命令补充 三种网络代理方式 参考文档 备注 1.What is Pod? 那什么是Pod?如图所示,Pod中有一个pause容器,和一堆业务容器,他们有各自的PID.MOUNT和USER,但他们共享

《两地书》--Kubernetes(K8s)基础知识(docker容器技术)

大家都知道历史上有段佳话叫“司马相如和卓文君”.“皑如山上雪,皎若云间月”.卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武帝赏识,飞黄腾达之后便要与卓文君“故来相决绝”,寄来给家乡留守的妻子一封<两地书>,上面只有一行数字:“一二三四五六七八九十百千万.”意义是:无亿,我已经无意于你啦. 卓文君看了这封信也不示弱,回了一首<怨郎诗>,司马相如看了发现虽然我是靠写诗吃饭的.要说写诗还是我媳妇厉害,于是亲自将卓文君迎回长安. 卓文君其实是个二婚.头

kubernetes(k8s)-介绍2

kubernetes(k8s)-安装(二) 什么是Kubernetes Kubernetes是一个开源平台,用于跨主机群集自动部署,扩展和操作应用程序容器,提供以容器为中心的基础架构. 使用Kubernetes,您可以快速高效地响应客户需求: 快速,可预测地部署应用程序. 在运行中扩展应用程序. 无缝推出新功能. 仅使用您需要的资源来优化硬件的使用. 我们的目标是建立一个组件和工具的生态系统,以减轻在公共云和私有云中运行应用程序的负担. Kubernetes是: Kubernetes是Googl

Kubernetes之资源清单定义

目录 Kubernetes之资源清单定义 常用资源 利用配置清单定义自主式Pod资源 Kubernetes之资源清单定义 常用资源 工作负载型 Pod,ReplicaSet,StatefulSet,DaemonSet,Job,Cronjob 服务发现及均衡 Sevice,Ingress,... 配置与存储 Volume,CSI,ConfigMap,Secret,DownwardAPI 集群级资源 Namespace,Node,Role,ClusterRole,RoleBinding,Cluste

Kubernetes K8s架构师实战集训营

Kubernetes K8s架构师实战集训营 https://pan.baidu.com/s/1ZSHbOurKhvVLu15Q_fNI9Q Kubernetes K8s架构师实战集训营 https://pan.baidu.com/s/1ZSHbOurKhvVLu15Q_fNI9Q ├─第 1 章:Ansible 自动化部署 K8S 集群 01-Ansible 概述,基本使用.mp4 02-7个常用模块基本使用.mp4 03-Playbook 基本使用-A.mp4 03-Playbook 基本使

k8s基本概念-配置调度策略之(Taints-and-Tolerations)

k8s基本概念-配置调度策略之(Taints-and-Tolerations) 2018/4/12 通过定义 Taints and Tolerations 来达到 node 排斥 pod 的目的 通过一个典型实例来描述 taint 和 toleration 之间的关联 测试前的集群状态 部署app whoami-t1 测试 taint 的用法 测试结果 测试使用 toleration 测试结果 如何移除指定的 taint 呢? 聊一聊 Taints and Tolerations 的细节 概念

Kubernetes(K8S)集群在centos7.4下创建

自己在搭Kubernetes(K8S)集群下遇到的坑写一点随笔. 本次采用192.168.60.21,192.168.60.22,192.168.60.23作为需要装的服务器. master需要安装etcd, flannel,docker, kubernetes   192.168.60.21 yum –y install etcd yum –y install flannel yum –y install docker yum –y install kubernetes 分支上安装flanne

Build Kubernetes[k8s] cluster

我是先对docker初步到进阶的了解学习,常用的命令,基本的容器构建和docker原理概念学习完之后,步入k8s.即使这样,刚看k8s官方文档时,其设计理念.组件构成以及生态需要了解掌握的知识不在少数.为此,花了几天时间在官方文档&个人博客上做了上述方面初步了解,较为直观的便可分为两方面: master: API server Controller Manager Scheduler Etcd node: kublet kube-proxy pod Kubernetes集群组件: etcd 一个

(二)搭建一个完成的Kubernetes/K8s集群v.1.16

单节点集群多节点集群 注意node通过连接loadbalancer 转发到mateter 的apiserver来进行运作的 集群规划: 角色 ip 组件 K8S-master1 192.168.0.101 kube-apiserver kube-controller-manager kube-scheduleretcd K8S-master2 192.168.0.102 kube-apiserver kube-controller-manager kube-scheduleretcd K8S-n