概念 - Kubernetes 对象管理

kubectl 命令行工具支持创建和管理 Kubernetes 对象的几种不同方式。该文档概述了不同的方法。阅读 Kubectl 小书,了解 Kubectl 管理对象的详细信息。

管理技巧

警告:应该仅用一种技术来管理 Kubernetes 对象。同一对象的混合及匹配技术会导致不确定的行为。

管理技巧操作于推荐环境支持的写入器学习曲线
命令式命令活动对象开发项目1+最低
命令式对象配置独立文件生产项目1中等
声明式对象配置多目录多文件生产项目1+最高

命令式命令

使用命令式命令时,用户可以直接在集群中的活动对象上进行操作。用户向 kubectl 命令提供操作作为参数或标志。

这是开始或在集群中运行一次性任务的最简单方法。由于该技术直接在活动对象上运行,因此它不提供以前配置的历史记录。

例子

通过创建 Deployment 对象来运行 Nginx 容器的实例:

kubectl run nginx --image nginx

使用不同的语法执行相同的操作:

kubectl 创建部署 nginx --image nginx

权衡取舍

与对象配置相比的优势:

  • 命令简单,易学且易于记忆;
  • 命令仅需一步即可对集群进行更改。

与对象配置相比的缺点:

  • 命令不与变更审核流程继承;
  • 命令不提供与更改关联的审核跟踪;
  • 除实时内容外,命令不提供记录源;
  • 命令不提供用于创建新对象的模版。

命令式对象配置

在命令式对象配置中,kubectl 命令指定操作(创建、替换等),可选标志和至少一个文件名。指定的文件必须包含 YAML 或 JSON 格式的对象的完整定义。

有关对象定义的更多详细信息,请参见 API 参考

警告:命令式 replace 命令将现有归还替换为新提供的规范,并删除对配置文件中缺少的对象的所有更改。该方法不应与规则独立于配置文件进行更新的资源类型一起使用。例如,LoadBalancer 类型的服务的 externalIPs 字段独立于集群的配置进行更新。

例子

创建在配置文件中定义的对象:

kubectl create -f nginx.yaml

删除两个配置文件中定义的对象:

kubectl delete -f nginx yaml -f redis.yaml

通过覆盖实时配置来更新配置文件中定义的对象:

kubectl replace -f nginx.yaml

权衡取舍

与命令式命令相比的优势:

  • 对象配置可以存储在源控制系统(如 Git)中;
  • 对象配置可以与流程集成,例如在推送和审核跟踪之前检查更改;
  • 对象配置提供了用于创建新对象的模版。

与命令式命令相比的缺点:

  • 对象配置需要对对象架构由基本的了解;
  • 对象配置需要额外的写入 YAML 文件的步骤。

与声明式对象配置相比的优势:

  • 命令式对象配置行为更简单易懂;
  • 从 Kubernetes 1.5 版本开始,命令式对象配置更加成熟。

与声明式对象配置相比的缺点:

  • 命令式对象配置最适合文件而不是目录;
  • 对活动对象的更新必须反映在配置文件中,否则在下一次替换期间将丢失。

声明式对象配置

使用声明式对象配置时,用户对本地存储的对象配置文件进行操作,但是,用户未定义要对该文件执行的操作。创建、更新及删除操作由 kubectl 自动检测到每个对象。这样可以处理目录,其中可能需要对不同的对象执行不同的操作。

注意:声明式对象配置保留其他编写者所做的更改,即使这些更改未合并回到对象配置文件中。这可以通过使用 patch API 操作仅写入观察到的差异,而不是使用 replace API 操作来替换整个对象配置来实现。

例子

处理 configs 目录中的所有对象配置文件,并创建或修补活动对象。我们可以先进行比较以查看将要进行的更改,然后应用:

kubectl diff -f configs/
kubectl apply -f configs/

递归处理目录:

kubectl diff -R -f configs/
kubectl apply -R -f configs/

权衡取舍

与命令式对象配置相比的优势:

  • 即使未将它们重新合并到配置文件中,也将保留直接对活动对象所做的更改;
  • 声明式对象配置更好地支持对目录进行操作并自动检测每个对象的操作类型(创建、修补、删除)。

与命令式对象配置相比的缺点:

  • 声明式对象配置在意外发生时更难调试和理解结果;
  • 使用差异的部分更新会创建复杂的合并及补丁操作。

下一步怎么做

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
kubernetes-learning.pdf,网盘文件永久链接 ├ 一、课程介绍 │ └ 11.课程介绍.mp4 ├ 七、深入理解Pod │ │ 18.YAML 文件.mp4 │ │ 19.静态 Pod.mp4 │ │ 20.Pod Hook.mp4 │ │ 21.Pod 的健康检查.mp4 │ └ 22.初始化容器.mp4 ├ 三、Docker三架马车 │ │ 10.Docker Swarm.mp4 │ │ 8.Docker Compose.mp4 │ └ 9.Docker Machine.mp4 ├ 九、持久化存储 │ │ 35.PV 的使用.mp4 │ │ 36.PVC 的使用.mp4 │ └ 37.StorageClass 的使用.mp4 ├ 二、Docker基础 │ │ 2.Docker 简介与安装.mp4 │ │ 3.Docker 基本命令.mp4 │ │ 4.Dockerfile 基本用法.mp4 │ │ 5.Docker 私有仓库.mp4 │ │ 6.数据共享与持久化.mp4 │ └ 7.Docker 网络模.mp4 ├ 五、Kubernetes基础 │ │ 14.Kubernetes 初体验.mp4 │ └ 15.基本概念和组件.mp4 ├ 八、常用资源对象 │ │ 23.Replication Controller 与 Replica Set.mp4 │ │ 24.Deployment 的使用.mp4 │ │ 25.Pod 自动扩缩容.mp4 │ │ 26.Job 和 CronJob 的使用.mp4 │ │ 27.Service 的使用.mp4 │ │ 28.ConfigMap 的使用.mp4 │ │ 29.Secret 的使用.mp4 │ │ 30.RBAC 的使用(1).mp4 │ │ 31.RBAC 的使用(2).mp4 │ │ 32.WordPress 部署示例(1).mp4 │ │ 33.WordPress 部署示例(2).mp4 │ └ 34.DaemonSet 与 StatefulSet 的使用.mp4 ├ 六、集群环境搭建 │ │ 16.使用 Kubeadm 搭建集群环境.mp4 │ └ 17.Dashboard 插件安装.mp4 ├ 十、服务发现 │ │ 38.集群内部服务发现-kubedns.mp4 │ │ 39.traefik 的安装使用.mp4 │ └ 40.Ingress TLS 与 PATH 使用.mp4 ├ 十一、Helm包管理工具 │ │ 41.Helm 的安装使用.mp4 │ │ 42.Helm 的基本使用.mp4 │ │ 43.Helm 模板之内置函数和 Values.mp4 │ │ 44.Helm 模板之模板函数与管道.mp4 │ │ 45.Helm 模板之控制流程.mp4 │ │ 46.Helm 模板之命名模板.mp4 │ │ 47.Helm 模板之其他注意事项.mp4 │ └ 48.Helm Hooks 的使用.mp4 ├ 十三、集群监控 │ │ 52.手动安装 Prometheus.mp4 │ │ 53.Prometheus 安装错误排查.mp4 │ │ 54.监控 Kubernetes 集群应用.mp4 │ │ 55.node-exporter 的安装使用.mp4 │ │ 56.Prometheus 自动发现 K8S 节点.mp4 │ │ 57.Kubernetes 常用资源对象监控.mp4 │ │ 58.Grafana 的安装使用.mp4 │ │ 59.Grafana 的插件和监控.mp4 │ │ 60.AlertManager 的安装使用.mp4 │ │ 61.AlertManager 结合钉钉的报警.mp4 │ │ 62.Prometheus Operator 的安装使用.mp4 │ │ 63.自定义 Prometheus Operator 监控.mp4 │ │ 64.自定义 Prometheus Operator 报警.mp4 │ └ 65.Prometheus Operator 高级配置.mp4 ├ 十二、调度器 │ │ 49.调度器解析.mp4 │ │ 50.节点亲和性.mp4 │ └ 51.Pod 亲和性与反亲和性以及污点和容忍.mp4 ├ 十五、CICD │ 69.动态 Jenkins Slave.mp4 │ 70.Jenkins Pipeline 部署 K8S 应用.mp4 │ 71.Jenkins Blue Ocean 的使用.mp4 │ 72.Harbor.........
k8s学习 介绍 序⾔ 课程介绍 Docker 基础 Docker 简介 镜像和容器的基本操作 Dockerfile 定制镜像 私有镜像仓库 数据共享与持久化 Docker 的⽹络模 Docker 三架⻢⻋ Docker Compose Docker Machine Docker Swarm Docker 实践 图形化管理和监控 Docker 的多阶段构建 Dockerfile 最佳实践 Kubernetes 基础 Kubernetes 初体验 基本概念与组件 kubeadm 搭建集群 使⽤ kubeadm 搭建集群环境 安装 Dashboard 插件 17.1 7.2 7.3 7.4 7.5 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 9.1 9.2 9.3 10.1 10.2 10.3 11.1 11.2 11.3 深⼊理解 Pod YAML ⽂件 静态 Pod Pod Hook Pod 的健康检查 初始化容器 常⽤对象操作: Replication Controller 与 Replica Set Deployment HPA Job/CronJob Service ConfigMap Secret RBAC 部署Wordpress示例 DaemonSet 和 StatefulSet 持久化存储: PV PVC StorageClass 服务发现 kubedns ingress 安装配置 ingress tls 和 path 的使⽤ 包管理⼯具 Helm Helm 的安装使⽤ Helm 的基本使⽤ Helm 模板之内置函数和Values 211.4 11.5 11.6 11.7 11.8 12.1 12.2 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14.1 14.2 15.1 15.2 15.3 15.4 15.5 15.6 15.7 Helm 模板之模板函数与管道 Helm 模板之控制流程 Helm 模板之命名模板 Helm 模板之其他注意事项 Helm Hooks 调度器 Kubernetes 调度器介绍 Kubernetes 亲和性调度 集群监控 ⼿动安装 Prometheus 监控 Kubernetes 集群应⽤ 监控 Kubernetes 集群节点 监控 Kubernetes 常⽤资源对象 Grafana 的安装使⽤ AlertManager 的使⽤ Prometheus Operator 的安装 ⾃定义Prometheus Operator 监控项 Prometheus Operator⾼级配置 ⽇志收集 ⽇志收集架构 搭建 EFK ⽇志系统 CI/CD: 动态 Jenkins Slave Jenkins Pipeline 部署 Kubernetes 应⽤ Jenkins BlueOcean Harbor Gitlab Gitlab CI Devops
### 回答1: Kubernetes 是一个开源的容器编排工具,可以帮助用户自动化部署、扩展和管理容器化应用程序。在 Kubernetes 中,资源对象是指用于描述和管理集群中各种资源的抽象概念。 以下是 Kubernetes 中常见的资源对象类型: 1. Pod(容器组):Pod 是 Kubernetes 中最小的可部署对象,通常包含一个或多个容器,共享同一个网络命名空间和存储卷。 2. ReplicaSet(副本集):ReplicaSet 用于管理一组相同的 Pod 副本,保证在集群中的任何时间都有指定数量的副本运行。 3. Deployment(部署):Deployment 是一种管理 Pod 和 ReplicaSet 的高级对象,用于实现容器化应用程序的滚动更新和回滚。 4. Service(服务):Service 提供了一种逻辑来访问一组 Pod,通常用于将网络流量路由到后端的 Pod。 5. ConfigMap(配置映射):ConfigMap 用于存储集群中的配置数据,例如应用程序的环境变量和配置文件。 6. Secret(密钥):Secret 用于存储敏感信息,例如密码和证书,以安全地在集群中传输和存储。 7. PersistentVolume(持久卷):PersistentVolume 用于将持久化存储抽象出来,使其在不同的存储系统之间具有可移植性。 8. StatefulSet(有状态集):StatefulSet 用于管理具有唯一标识和稳定网络标识符的 Pod,通常用于运行需要持久化存储和有状态服务的应用程序。 这些资源对象Kubernetes 集群中的基本构建块,使用它们可以轻松地管理和扩展容器化应用程序。 ### 回答2: Kubernetes中的资源对象是指在Kubernetes集群中由用户定义和管理的各种资源类型,用于表示和控制应用程序、服务和基础设施等方面的相关资源。 Kubernetes提供了多种资源对象,包括但不限于以下几种: 1. Pod(容器组):Pod是Kubernetes中最小的可调度和部署单元,可以包含一个或多个容器。Pod通常将相关的容器组合在一起,共享网络和存储,并提供容器之间的通信和数据共享。 2. ReplicaSet(副本集):ReplicaSet用于定义和管理Pod的集合。它确保指定数量的Pod副本运行,并根据需要自动进行缩放,以实现应用程序的高可用性和负载均衡。 3. Deployment(部署):Deployment是ReplicaSet的高级抽象,用于实现无缝的应用程序部署和升级。它可以定义应用程序的副本数、升级策略和滚动升级等参数,并确保在应用程序版本变更时无需停机。 4. Service(服务):Service定义了一组Pod的访问方和网络连接,提供了一个稳定的地址和端口,使得其他Pod或外部用户能够与应用程序进行通信。 除了上述常用资源对象,还有诸如ConfigMap(配置映射)、Secret(密钥)、Namespace(命名空间)等资源对象,它们用于管理和传递应用程序的配置信息、敏感数据和资源隔离等方面的需求。 通过使用这些资源对象,用户可以方便地定义和管理各种不同类型的应用程序和服务,并通过Kubernetes提供的强大的调度和管理功能,实现高可用性、弹性伸缩和自动化的应用程序部署和运维。 ### 回答3: Kubernetes 中的资源对象是指在集群中定义和管理的可部署的计算资源。它们用来描述和控制应用程序的部署、扩展和管理Kubernetes 中有多种资源对象可供使用,如下所示: 1. Pod: Pod 是 Kubernetes 中最小的可部署对象单元。它由一个或多个容器组成,并共享相同的网络和存储资源。Pod 可以用来运行一个或多个容器应用程序。 2. Deployment: Deployment 是用来管理 Pod 的资源对象。它定义了一组 Pod 的副本,并负责监控和维护这些 Pod 的状态。通过 Deployment,可以方便地进行应用的部署、升级和回滚操作。 3. Service: Service 是用来暴露 Pod 的网络服务的资源对象。它为一组 Pod 提供了一个统一的访问入口,并负责将请求按照相应的负载均衡算法分发给后端的 Pod。 4. Volume: Volume 是用来管理 Pod 中的存储资源的资源对象。它可以将外部存储系统挂载到 Pod 中,以便应用程序可以进行持久化数据的存储。 此外,Kubernetes 还提供了许多其他类型的资源对象,如 StatefulSet、DaemonSet、Job、CronJob 等,用于满足不同应用程序的需求。这些资源对象可以通过 YAML 或 JSON 文件进行定义和配置,并通过 Kubernetes API 进行管理和操作。 通过使用 Kubernetes 的资源对象,我们可以更方便地管理和部署应用程序,实现高可用性和弹性的系统架构,提高应用程序的可靠性和可扩展性。它为开发人员和运维人员提供了一种简单而强大的方管理和扩展应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值