kubectl 命令行管理K8S(下)

目录

声明式资源管理方式

介绍

命令

修改yaml文件指定的资源

离线修改

在线修改

YAML 语法格式

查看 api 资源版本标签

编辑yaml配置清单生成资源

编写yaml文件

yaml创建Deployment

 yaml创建service服务对外提供访问并测试

yaml创建Pod 

生成模板

pod模板

serivce模板

deployment模板

导入模板


声明式资源管理方式

介绍

1.适合于对资源的修改操作
2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理
资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)
3.对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到k8s集群里
4.语法格式:kubectl create/apply/delete -f xxxx.yaml

可理解成使用yaml配置文件里定义的配置来实现资源对象的管理操作

命令

应用yaml文件指定的资源

kubectl create -f xxx.yaml
kubectl apply -f xxx.yaml 
#区别:使用create创建资源是一次性的,如果使用apply创建,后期修改yaml文件再次执行apply可以实现更新资源

删除yaml文件指定的资源

 kubectl delete -f xxx.yaml

 查看资源的yaml格式信息

kubectl get 资源名称 -o yaml

 查看yaml文件字段说明

kubectl explain yaml文件中的字段(多级字段用 . 隔开)

 

修改yaml文件指定的资源

离线修改

修改yaml文件,并用 kubectl apply -f xxxx.yaml 文件使之生效
注意:当apply不生效时,先使用delete清除资源,再apply创建资源

例:
kubectl get service nginx -o yaml > nginx-svc.yaml
vim nginx-svc.yaml				#修改port: 8080
kubectl delete -f nginx-svc.yaml
kubectl apply -f nginx-svc.yaml
kubectl get svc

在线修改

直接使用 kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效(如port: 888)
PS:此修改方式不会对yaml文件内容修改

YAML 语法格式

●大小写敏感
●使用缩进表示层级关系
●不支持Tab键制表符缩进,只使用空格缩进
●缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格
●符号字符后缩进一个空格,如冒号,逗号,短横杆(-)等
●“---”表示YAML格式,一个文件的开始,用于分隔文件间
●“#”表示注释

查看 api 资源版本标签

编辑yaml配置清单生成资源

编写yaml文件有三种方式

直接编写:即从零开始写一个yaml文件,可以借用kubectl explain 字段名查看。
生成模板:使用kubectl run 资源 --dry-run=client > xxx.yaml 生成yaml模板文件,然后进行编辑。
导出模板:将现有资源使用 yaml 格式输出并导入 xxx.yaml 文件,然后进行编辑。

编写yaml文件

yaml创建Deployment
mkdir /opt/demo
cd demo/vim nginx-deployment.yaml
---
apiVersion: apps/v1    //指定api版本标签
kind: Deployment    //定义资源的类型/角色,deployment为副本控制器,此处资源类型可以是Deployment、Job、Ingress、Service等
metadata:    //定义资源的元数据信息,比如资源的名称、namespace、标签等信息name: nginx-deployment    //定义资源的名称,在同一个namespace空间中必须是唯一的namespace: kube-public    //定义资源所在命名空间labels:    //定义资源标签app: nginxname: test01
spec:    //定义资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性replicas: 3    //副本数selector:    //定义标签选择器matchLabels:    //定义匹配标签app: nginx    //需与.spec.template.metadata.labels 定义的标签保持一致template:    //定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配metadata:labels:    //定义Pod副本将使用的标签,需与.spec.selector.matchLabels 定义的标签保持一致app: nginxspec:containers:    //定义容器属性- name: nignx    //定义一个容器名,一个 - name: 定义一个容器image: nginx:1.21    //定义容器使用的镜像以及版本ports:- name: httpcontainerPort: 80    定义容器的对外的端口- name: httpscontainerPort: 443

 

#创建资源对象
kubectl create -f nginx-deployment.yaml#查看创建的pod资源
kubectl get pods -n kube-public

 

 yaml创建service服务对外提供访问并测试
vim nginx-service.yaml
apiVersion: v1  
kind: Service  
metadata:name: nginx-servicelabels:app: nginx  
spec:type: NodePort  ports:- port: 8080targetPort: 80nodePort: 30007clusterIP: 10.0.0.239selector:app: nginx

 

/创建资源对象
kubectl create -f nginx-service.yaml //查看创建的service
kubectl get svc

 在浏览器输入 nodeIP:nodePort 即可访问

http://192.168.75.20:30007

http://192.168.75.30:30007

 详解k8s中的port:
●port
port 是 k8s 集群内部访问service的端口,即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到 service

●nodePort
nodePort 是外部访问 k8s 集群中 service 的端口,通过 nodeIP: nodePort 可以从外部访问到某个 service。(默认:30000-32767)

●targetPort
targetPort 是 Pod 的端口,从 port 或 nodePort 来的流量经过 kube-proxy 反向代理负载均衡转发到后端 Pod 的 targetPort 上,最后进入容器。

●containerPort
containerPort 是 Pod 内部容器的端口,targetPort 映射到 containerPort。

yaml创建Pod 
vim demo2.yaml
---
apiVersion: v1
kind: Pod    //类型为pod
metadata:name: mynginxlabels:name: mynginx
spec:containers:    //指定容器镜像和端口- name: nginximage: nginx:1.18ports:- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:name: nginxpodsvclabels:name: mynginx
spec:type: NodePort    //nodeport类型可以对外服务ports:- port: 8008    //服务指定8008端口,因为没有指定node端口,会随机生成targetPort: 80selector:name: mynginx

 

 

 

 

 

生成模板

pod模板
kubectl run pod名称 --image=指定镜像 --port=pod端口 --dry-run=client -o yaml > xxx.yaml
# kubectl run 可以运行一个容器
# --dry-run=client 可以实现空跑一个容器,不会实际创建(用于测试)
# -o yaml 输出yaml格式
# > xxx.yaml 将输出内容导入指定的yaml文件

 

serivce模板

kubectl expose deployment 服务名称 --port=服务端口 --target-port=pod端口 --type=端口类型 --dry-run=client -o yaml > xxx.yaml

 

deployment模板
kubectl create deployment 名称 --image=镜像 --port=容器端口 --replicas=n --dry-run=client -o yaml > xxx.yaml

 

导入模板

kubectl get 资源类型 资源名称 -o yaml > xxx.yaml        #这种方式需要删除改动的地方较多
#查看字段帮助信息,可一层层的查看相关资源对象的帮助信息
kubectl explain deployments.spec.template.spec.containers
或
kubectl explain pods.spec.containers

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux运维-Web服务器的配置与管理(Apache+tomcat)(没成功,最后有失败经验)

Web服务器的配置与管理(Apachetomcat) 项目场景 公司业务经过长期发展,有了很大突破,已经实现盈利,现公司要求加强技术架构应用功能和安全性以及开始向企业应用、移动APP等领域延伸,此时原来开发web服务的php语言已经不适应新的…

leetcode:134.加油站

解题思路:需要注意开始时的编号,有的可以走一圈,有的走不了 模拟过程:for循环主要是用来模拟线性的过程,而在这里它是环状的; 可以用暴力解法,但是在这里我用贪心来解决。 常见疑惑&#xff1…

云呐智能化运维发展趋势是什么样?5g智能化矿山运维是什么

智能运维是近年来信息技术和自动化技术发展的一个新兴领域。未来,智能运维的技术演变方式可能包括以下几个方面: 数据驱动决策: 随着大数据技术的发展,智能运维将更加重视数据驱动的决策。通过对海量数据的实时分析和挖掘,我们可以发…

selenium中webdriver常用的ChromeOptions参数

官网链接:Browser Options | Selenium 使用示例: from selenium import webdriver from selenium.webdriver.chrome.options import Options# 创建选项对象 options Options()# 设置浏览器启动时的窗口大小 options.add_argument("--window-size…

在Web UI上提交Flink作业

1)任务打包完成后,我们打开Flink的WEB UI页面,在右侧导航栏点击“Submit New Job”,然后点击按钮“ Add New”,选择要上传运行的JAR包 JAR包上传完成,如下图所示 (2)点击该JAR包&…

人工智能之Tensorflow程序结构

TensorFlow作为分布式机器学习平台,主要架构如下: 网络层:远程过程调用(gRPC)和远程直接数据存取(RDMA)作为网络层,主要负责传递神经网络算法参数。 设备层:CPU、GPU等设备,主要负责神经网络算法中具体的运…

云计算及其应用知识点总结

云计算及其应用的知识点可以总结如下: 1. 云计算的概念:云计算是一种基于互联网的计算方式,将计算资源和服务提供给用户,用户通过互联网连接,按需获取和使用计算资源。 2. 云计算的原理:云计算的原理包括资…

全量知识系统问题及SmartChat给出的答复 之4

Q11. 现在,我们进一步完善前端--知识表征。首先前端需要基于一个全面的GUI库,和前面说到的 混沌工程:基于流形 的分形混沌 与自相似性的计算机图像与程序。请考虑 1)这两部分的实现用什么 ?2) 如何封装它们…

在SAP HANA中使用OData(二)

通常有两种方式通过OData来暴露SAP HANA中的数据库对象,一是直接使用Database Object,比如前一篇和本篇文章介绍的例子,这种方式针对于数据已经存在于SAP HANA中,在Repository中没有对应的设计时对象(Design-time Object)&#xf…

IT廉连看——Uniapp——页面样式与布局

IT廉连看——Uniapp——页面样式与布局 目标: 了解样式与布局的规范 熟记px和rpx的区别 全局样式与index样式的区别 一、查看uniapp框架简介——尺寸单位 px尺寸单位的使用是贯穿始终的。 [IT廉连看] 二、尺寸单位——实操效果 1、打开Hbuilder X并进入in…

「QALog」测试方向计算机网络知识点总结(一)上

哈喽大家好,我是chowley,QALog创始人,测试开发工程师 这次的测试八股系列专栏由我来主写,给大家带来亿点点硬货,我总结了市面上主流的测试计网八股,今天是系列的第一篇,废话少说直接开整&#…

幻兽帕鲁服务器哪家便宜?阿里云腾讯云京东云华为云对比

幻兽帕鲁服务器哪家便宜?阿里云腾讯云京东云华为云对比,阿里云更便宜,26元1个月。游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,华为云26元&#x…

双非二本找实习前的准备day1

今天起,如无特殊情况,就每天在这打卡学习记录啦 学习目标: 每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目3道算法(时间充足可以继续),背诵的八股的问题也在这…

Python 与 pdfplumber:高效自动读取 PDF 的解决方案

在许多数据处理和信息提取任务中,处理 PDF 文件可能是一个具有挑战性的过程。幸运的是,Python 提供了许多库来简化这个任务,其中 pdfplumber 是一个功能强大且易于使用的库。在本文中,我们将探讨如何使用 Python 和 pdfplumber 库…

【docker】CentOS 7上安装Docker的详细过程

🍎个人博客:个人主页 🏆个人专栏:软件的安装 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 1、更新系统: 2、添加Docker存储库: 3、安装Docker CE(社区版)&#xff1a…

Databend 开源周报第 133 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 了解对开放表格…

鉴源论坛 · 观辙丨TLS协议基本原理与Wireshark分析

作者 | 苏少博 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 背 景 随着车联网的迅猛发展,汽车已经不再是传统的机械交通工具,而是智能化、互联化的移动终端。然…

【多智能体】MetaGPT配置教程(应用智谱AI的GLM-4)

MetaGPT配置教程(使用智谱AI的GLM-4) 文章目录 MetaGPT配置教程(使用智谱AI的GLM-4)零、为什么要学MetaGPT一、配置环境二、克隆代码仓库三、设置智谱AI配置四、 示例demo(狼羊对决)五、参考链接 零、为什么…

爆火的1分钟声音克隆GPT-SoVITS项目 linux系统 ubuntu22.04安装2天踩坑教程

原项目地址:https://github.com/RVC-Boss/GPT-SoVITS 1分钟素材,最后出来的效果确实不错。 1. cuda环境安装 cuda环境准备 根据项目要求在cuda11.8和12.3都测试了通过。我这里是用cuda11.8 cuda11.8安装教程: ubuntu 22.04 cuda多版本和…

牛客前端八股文(每日更新)

1.说说HTML语义化? 得分点:语义化标签、利于页面内容结构化、利于无CSS页面可读、利于SEO、利于代码可读 1,标签语义化是指在开发时尽可能使用有语义的标签,比如header,footer,h,p&#xff0c…