前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器编排引擎Kubernetes 09——资源文件的介绍及使用

容器编排引擎Kubernetes 09——资源文件的介绍及使用

原创
作者头像
用户8100582
修改2024-02-02 19:37:50
1970
修改2024-02-02 19:37:50
举报
文章被收录于专栏:微服务化微服务化

系列目录

  1. 容器编排引擎Kubernetes 01——一文带你认识K8S
  2. 容器编排引擎Kubernetes 02——k8s安装配置
  3. 容器编排引擎Kubernetes 03——初始化集群
  4. 容器编排引擎Kubernetes 04——部署Dashboard
  5. 容器编排引擎Kubernetes 05——命名空间和POD
  6. 容器编排引擎Kubernetes 06——kubectl常用命令
  7. 容器编排引擎Kubernetes 07——Deployment介绍及使用
  8. 容器编排引擎Kubernetes 08——Service介绍及使用
  9. 容器编排引擎Kubernetes 09——资源文件的介绍及使用
  10. 容器编排引擎Kubernetes 10——在k8s集群中部署项目

1 IDEA 插件

pod及service等各种K8S资源文件,其中字段及取值非常多,仅凭手工输入繁琐且效率低下,可以能过在IDEA中安装K8S插件来快速编写资源文件。

K8S插件未与 IntelliJ IDEA 捆绑在一起,需要从 JetBrains 插件库单独安装。

1.1 插件安装

K8S 插件官网地址:

https://plugins.jetbrains.com/kubernetes地址https://plugins.jetbrains.com/plugin/10485-kubernetes

当启动本地的 IDEA后,在页面右上角会自动检测到我们本地安装的版本,进行匹配和安装。如果没有检测到,则需要手动下载的安装。

首先在页面中查找对应自己idea版本的k8s插件信息。找到后,点击“download”下载到本地。

打开IDEA中 file > settings,从本地磁盘安装。

完成后,重启IDEA。

1.2 可能遇到的问题

1.2.1 提示没有docker

在安装 kubernetes 插件之前,需要先安装 docker 插件。

1.2.2 提示没有com.intellij.modules.ultimate

可能你使用的是社区版,需要将下载的插件解压后,将其中的 lib/Kubernetes.jar文件用解压工具打开,进入到 META-INF 目录下

打开 plugin.xml 文件,将下边这一行内容删掉后,把修改后的文件更新到jar包中,并将所有内容重新打成一个 .zip 包,重新从磁盘安装。重启后,可以正常使用。

1.3 插件的使用

新建一个yml文件,在文件中输入 k 后,可以看到弹出的提示信息,包括 kubernetes 各类资源配置。

2 k8s中的资源文件格式

目前支持两种文件格式:json 和 yaml 来管理资源文件。

资源文件由5个顶级字段组成:

  • apiVersion 指定api的版本
  • kind 指明资源类别
  • metadata 资源元数据
  • spec 定义资源需要的参数或属性
  • status 标明资源当前的状态,本字段不能人为设置,由 kubernetes 自动维护。

2.1 API资源版本

查看API资源版本标签

kubectl api-versions

k8s官方将apiVersion分成了三个大类型:

  • Alpha 未经充分测试,可能存在bug,功能可能随时调整或删除
  • Beta 经过充分测试,功能细节可能会在未来进行修改
  • Stable 稳定版本,将会得到持续支持

常用的有4种:

  • v1 kubernetes API 的稳定版本,包含很多核心对象:pod、service等
  • apps/v1 包含一些通用的应用层的api组合,如 Deployments, RollingUpdates,ReplicaSets
  • batch/v1 包含与批处理和类似作业的任务相关的对象,如 job, cronjob
  • autoscaling/v1 允许根据不同的资源使用指标,自动调整容器

2.2 资源帮助

具体含义可通过帮助文档获取相应的使用说明

代码语言:shell
复制
kubectl explain pod
kubectl explain deploy
kubectl explain service
kubectl explain job

也可以查看资源下的子元素帮助信息,如kubectl explain pod.metadata

通过IDEA插件创建资源对象,可减少字段记忆,例如创建资源文件 nginx-service.yaml

代码语言:yaml
复制
apiVersion: v1
kind: Service
metadata:
  name: nginx-service # 对象名称
spec:
  selector:
    app: nginx # 标签
  type: NodePort # service类型
  ports:
    - protocol: TCP
      port: 80 #集群内部service之间访问的端口
      targetPort: 80 #pod的端口,通过它进入容器

2.3 通过干跑方式生成yaml模板

--dry-run 试运行,或者干跑,并没有真正执行命令(仅用于验证命令的正确性)。即不会真的创建出资源实例,去掉参数后即可真正执行命令。

创建一个名为dryrun-test的deployment

代码语言:shell
复制
# 仅打印相应的API对象,不执行创建操作
kubectl create deploy dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client

执行指令后,显示以(dry run)方式创建了资源。查看当前所有的deployment资源时,并没有该资源信息。实际并未被创建。

  • -o yaml 查看生成的yaml文件
代码语言:shell
复制
# 仅打印相应的API对象,不执行创建操作
kubectl create deploy dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml

执行命令后,生成的yaml文件被输出到控制台。

  • -o json 查看生成的json文件
代码语言:shell
复制
# 仅打印相应的API对象,不执行创建操作
kubectl create deployment dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client -o json

执行命令后,生成的json文件被输出到控制台。

  • 将生成的资源配置文件保存到文件中
代码语言:shell
复制
# 仅打印相应的API对象,不执行创建操作,并将生成的yaml内容输出到指定文件中
kubectl create deploy dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml > dryrun-test.yaml

执行命令后,生成的yaml模板被输出到后边指定的文件中,方便后边进行内容补充。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系列目录
  • 1 IDEA 插件
    • 1.1 插件安装
      • 1.2 可能遇到的问题
        • 1.2.1 提示没有docker
        • 1.2.2 提示没有com.intellij.modules.ultimate
      • 1.3 插件的使用
      • 2 k8s中的资源文件格式
        • 2.1 API资源版本
          • 2.2 资源帮助
            • 2.3 通过干跑方式生成yaml模板
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com