我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Kubernetes中怎么创建资源

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Kubernetes中怎么创建资源

这篇文章给大家分享的是有关Kubernetes中怎么创建资源的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在Kubernetes中所有操作的内容,我们都称为“资源对象”,是由API  Server基于HTTP/HTTPS接收并响应客户端的操作请求,是一种Restful风格的接口,将各种组件及操作内容都抽象成为标准的REST资源,如Namespace、Pod等,其中操作内容以JSON或yml格式数据进行操作。本文讲解的是Kubernetes中的最为重要的一节——资源清单,我们想要在Kubernetes中部署Pod、Service等资源对象,都需要通过资源清单的方式来部署,无论是通过命令kubectl,还是可视化控制台,都是离不开资源清单的定义,本文重点讲述资源清单如何定义、如何创建及使用。

1、资源分类

根据资源的功能进行资源分类,Kubernetes资源对象可分为:

  • 工作负载(Workload):Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、CronJob。

  • 发现和负载均衡(Discovery & LB):Service 、Ingress。

  • 配置和存储(Config & Storage):Volume(存储卷)、CSI(容器存储接口,可以扩展各种各样的第三方存储卷)。

  • 集群(Cluster):Namespace、Node、Role、ClusterRole、RoleBinding(角色绑定)、ClusterRoleBinding(集群角色绑定)。

  • 元数据(Metadata):HPA、PodTemplate(Pod模板,用于让控制器创建Pod时使用的模板)、LimitRange(用来定义硬件资源限制的)。

一个应用通常需要多个资源的支撑,例如,使用Deployment资源管理应用实例(Pod)、使用ConfigMap资源保存应用配置、使用Service或Ingress资源暴露服务、使用Volume资源提供外部存储等。

2.资源清单

资源清单,等同于一个剧本,能够告诉我们每一步应该怎么去做,Kubernetes接收到这么一个剧本,就能够按照这个剧本去执行,以达到我们的预期。在Kubernetes中,一般都是通过定义资源清单的方式去创建资源。一般使用yaml格式的文件来创建符合我们预期期望的资源,这样的yaml文件我们称为资源清单。(也可以定义为json格式)如,创建一个Pod资源:

apiVersion: v1 kind: Pod metadata:   name: vue-frontend   namespace: test   labels:     app: vue-frontend spec:   containers:   - name: vue-frontend     image: xcbeyond/vue-frontend:latest     ports:       - name: port         containerPort: 80         hostPort: 8080

接下来,以Pod资源定义为例展开对资源清单的详细说明。

2.1 资源清单定义

yaml格式的Pod资源清单定义文件的完整内容如下:

apiVersion: v1 kind: Pod    # 资源类别 metadata:    # 资源元数据   name: string   namespace: string   labels:     - name: string   annotations:     - name: string spec:      # 资源期望的状态   containers:    # 容器列表     - name: string    # 容器名称,下面的属性均属于对该容器的定义或约束       image: string         imagePullPolicy: [Always|Never|IfNotPresent]       command: [string]       args: [string]       workingDir: string       volumeMounts:         - name: string           mountPath: string           readOnly: boolean       ports:         - name: string           containerPort: int           hostPort: int           protocol: string       env:         - name: string           value: string       resources:         limits:           cpu: string           memory: string         requests:           cpu: string           memory: string       livenssProbe:         exec:           command: [string]         httpGet:           path: string           port: number           host: string           scheme: string           httpHeaders:             - name: string               value: string           tcpSocket:             port: number           initialDelaySeconds: 0           timeoutSeconds: 0           periodSeconds: 0           successThreshold: 0           failureThreshold: 0 ……

对各属性的详细说明如下表所示:(必选属性,是必须存在的,否则创建失败。)

Kubernetes中怎么创建资源

Kubernetes中怎么创建资源

Kubernetes中怎么创建资源

Kubernetes中怎么创建资源

上述列举的是常用的属性,如果想查看全部属性,可以使用命令kubectl explain pod:

[xcbeyond@bogon ~]$ kubectl explain pod KIND:     Pod VERSION:  v1  DESCRIPTION:      Pod is a collection of containers that can run on a host. This resource is      created by clients and scheduled onto hosts.  FIELDS:    apiVersion  <string>      APIVersion defines the versioned schema of this representation of an      object. Servers should convert recognized schemas to the latest internal      value, and may reject unrecognized values. More info:      https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources     kind  <string>      Kind is a string value representing the REST resource this object      represents. Servers may infer this from the endpoint the client submits      requests to. Cannot be updated. In CamelCase. More info:      https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds     metadata  <Object>      Standard object's metadata. More info:      https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata     spec  <Object>      Specification of the desired behavior of the pod. More info:      https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status     status  <Object>      Most recently observed status of the pod. This data may not be up to date.      Populated by the system. Read-only. More info:      https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

查看属性说明,使用如下命令,如:查看pod.spec.containers

[xcbeyond@bogon ~]$ kubectl explain pod.spec.containers KIND:     Pod VERSION:  v1  RESOURCE: containers <[]Object>  DESCRIPTION:      List of containers belonging to the pod. Containers cannot currently be      added or removed. There must be at least one container in a Pod. Cannot be      updated.       A single application container that you want to run within a pod.  FIELDS:    args  <[]string>      Arguments to the entrypoint. The docker image's CMD is used if this is not      provided. Variable references $(VAR_NAME) are expanded using the      container's environment. If a variable cannot be resolved, the reference in      the input string will be unchanged. The $(VAR_NAME) syntax can be escaped      with a double $$, ie: $$(VAR_NAME). Escaped references will never be      expanded, regardless of whether the variable exists or not. Cannot be      updated. More info:      https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell     command  <[]string>      Entrypoint array. Not executed within a shell. The docker image's      ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME)      are expanded using the container's environment. If a variable cannot be      resolved, the reference in the input string will be unchanged. The      $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME).      Escaped references will never be expanded, regardless of whether the      variable exists or not. Cannot be updated. More info:      https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell &hellip;&hellip;

2.2 示例

在命名空间test中,定义一个名为frontend的Pod。

(1)定义命名空间

为了便于后期测试,特定义一个新的命名空间test。(如果命名空间test已存在,则无需再建)

命名空间test的资源清单文件test-namespace.yaml如下:

apiVersion: v1 kind: Namespace metadata:      name: test

执行kubectl  create命令创建该Namespace:

[xcbeyond@bogon ~]$ kubectl create -f test-namespace.yaml  namespace/test created

(2)定义Pod

定义一个名为frontend的Pod,由一个容器组成,资源清单文件frontend-pod.yaml如下:

apiVersion: v1 kind: Pod metadata:   name: frontend   namespace: test   labels:     app: frontend spec:   containers:   - name: frontend     image: xcbeyond/vue-frontend:latest     ports:       - name: port         containerPort: 80         hostPort: 8080

执行kubectl create命令创建该Pod:

[xcbeyond@bogon ~]$ kubectl create -f frontend-pod.yaml  pod/frontend created

通过命令kubectl  get pods -n查看,创建Pod的状态:

[xcbeyond@bogon ~]$ kubectl get pods -n test NAME       READY   STATUS   RESTARTS   AGE frontend   1/1     Runing   0          79s

感谢各位的阅读!关于“Kubernetes中怎么创建资源”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Kubernetes中怎么创建资源

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用 go Kubernetes 客户端创建自定义资源

php小编小新为大家带来了关于使用go Kubernetes客户端创建自定义资源的介绍。随着云原生技术的发展,越来越多的企业开始采用Kubernetes作为容器编排平台。而创建自定义资源(CRD)则是Kubernetes的一个重要特性,它能
使用 go Kubernetes 客户端创建自定义资源
2024-02-08

怎么在kubernetes中创建Pod

本篇文章给大家分享的是有关怎么在kubernetes中创建Pod,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如何创建Pod?kubectl create -f 配置文件Po
2023-06-14

Kubernetes中怎么创建一个Nginx应用

本篇文章给大家分享的是有关Kubernetes中怎么创建一个Nginx应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用命令行kubectl run --image=ngi
2023-06-06

阿里云如何创建ecs资源

阿里云的ECS(ElasticComputeService)是一种弹性计算服务,能够根据需要动态扩展或收缩计算资源,是云计算领域的重要组成部分。在本文中,我们将详细介绍如何在阿里云中创建ECS资源。一、创建ECS实例1.登录阿里云控制台,选择“ECS”。2.在ECS页面,点击“实例”按钮,进入实例创建页面。3.在
阿里云如何创建ecs资源
2023-11-06

CentOS7中怎么创建本地YUM源

今天就跟大家聊聊有关CentOS7中怎么创建本地YUM源,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、使用CentOS光盘作为本地yum源(1) 实体机上直接放入光盘(2) VM
2023-06-10

怎么在Kubernetes里创建一个Nginx service

本篇内容主要讲解“怎么在Kubernetes里创建一个Nginx service”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Kubernetes里创建一个Nginx service”吧!
2023-06-06

kubernetes资源QOS机制实现原理是什么

本篇内容主要讲解“kubernetes资源QOS机制实现原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“kubernetes资源QOS机制实现原理是什么”吧!QOS是k8s中一种资源保护
2023-06-19

一文详解kubernetes 中资源分配的那些事

这篇文章主要为大家介绍了kubernetes 中资源分配的那些事,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-17

ASP.NET中怎么创建一个GeoRSS订阅源

这期内容当中小编将会给大家带来有关ASP.NET中怎么创建一个GeoRSS订阅源,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现 HTTP 处理程序1. 启动 Microsoft Visual Stud
2023-06-17

kubernetes中如何创建TLS证书和密钥

这篇文章将为大家详细讲解有关kubernetes中如何创建TLS证书和密钥,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:前言每个Kubernetes集群都有一个集群根证书颁发机构(CA)。 集群中的组
2023-06-04

Xamarin中资源分析怎么用

小编给大家分享一下Xamarin中资源分析怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!资源分析在 Xamarin Studio 中,我最喜欢的功能是资源分析。这个功能以前只作为一个实验性的选项,但现在 Xamari
2023-06-27

github怎么拿资源

GitHub是一个非常出名的开源平台,它不仅是一个代码托管平台,也是一个在线社交网站,开发者们可以在这里分享和获取资源、交流技术等。如何获取GitHub资源?注册账号首先,你需要注册一个GitHub账号。注册账户很简单,只需填写所需的信息,
2023-10-22

编程热搜

目录