pod及service等各种K8S资源文件,其中字段及取值非常多,仅凭手工输入繁琐且效率低下,可以能过在IDEA中安装K8S插件来快速编写资源文件。
K8S插件未与 IntelliJ IDEA 捆绑在一起,需要从 JetBrains 插件库单独安装。
K8S 插件官网地址:
https://plugins.jetbrains.com/kubernetes地址https://plugins.jetbrains.com/plugin/10485-kubernetes
当启动本地的 IDEA后,在页面右上角会自动检测到我们本地安装的版本,进行匹配和安装。如果没有检测到,则需要手动下载的安装。
首先在页面中查找对应自己idea版本的k8s插件信息。找到后,点击“download”下载到本地。
打开IDEA中 file > settings,从本地磁盘安装。
完成后,重启IDEA。
在安装 kubernetes 插件之前,需要先安装 docker 插件。
可能你使用的是社区版,需要将下载的插件解压后,将其中的 lib/Kubernetes.jar文件用解压工具打开,进入到 META-INF 目录下
打开 plugin.xml 文件,将下边这一行内容删掉后,把修改后的文件更新到jar包中,并将所有内容重新打成一个 .zip 包,重新从磁盘安装。重启后,可以正常使用。
新建一个yml文件,在文件中输入 k 后,可以看到弹出的提示信息,包括 kubernetes 各类资源配置。
目前支持两种文件格式:json 和 yaml 来管理资源文件。
资源文件由5个顶级字段组成:
查看API资源版本标签
kubectl api-versions
k8s官方将apiVersion分成了三个大类型:
常用的有4种:
具体含义可通过帮助文档获取相应的使用说明
kubectl explain pod
kubectl explain deploy
kubectl explain service
kubectl explain job
也可以查看资源下的子元素帮助信息,如kubectl explain pod.metadata
通过IDEA插件创建资源对象,可减少字段记忆,例如创建资源文件 nginx-service.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的端口,通过它进入容器
--dry-run
试运行,或者干跑,并没有真正执行命令(仅用于验证命令的正确性)。即不会真的创建出资源实例,去掉参数后即可真正执行命令。
创建一个名为dryrun-test的deployment
# 仅打印相应的API对象,不执行创建操作
kubectl create deploy dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client
执行指令后,显示以(dry run)方式创建了资源。查看当前所有的deployment资源时,并没有该资源信息。实际并未被创建。
-o yaml
查看生成的yaml文件# 仅打印相应的API对象,不执行创建操作
kubectl create deploy dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml
执行命令后,生成的yaml文件被输出到控制台。
-o json
查看生成的json文件# 仅打印相应的API对象,不执行创建操作
kubectl create deployment dryrun-test --image=nginx --port=80 --replicas=3 --dry-run=client -o json
执行命令后,生成的json文件被输出到控制台。
# 仅打印相应的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 删除。