pod 控制器 4

news2024/12/22 23:07:16

对于 pod 使用 yaml 文件或者 json 描述文件生成,之前都有提到过,且对 yaml 的每一个属性都有介绍到

确实是属性非常的多,但是我们知道如何去区分哪些是重要的部分,哪些是可有可无的部分之后,这些就变得简单了

pod 的主要组成部分

我们可以查看一下任意一个已经运行中的 pod

上面看到的属性,大多都是通过 yaml 文件来定义的

pod 定义是由这几个部分组成的:

  • 使用 K8S 中 api 的版本和 yaml 描述的资源类型

下面这 3 大块,基本上在所有的 K8S 资源中都可以看到

  • metadata

包括名称,命名空间,标签,该容器的其他信息

  • spec

对于 pod 的实际说明,如该 pod 的容器是哪些,卷是哪些等等

  • status

创建 pod 的时候不写这一部分,这一部分是包含只读的运行时数据,展示了资源该时刻的状态

手动创建 pod

之前我们有尝试过通过 kubectl run ... 的方式来直接通过拉取镜像后创建 pod

很多时候后,我们是需要自己写 yaml 后来运行生成 pod 的

例如自动创建:

kubectl run xmtkubia --image=xiaomotong888/xmtkubia --port=8080

咱们可以这样来手动创建一个 pod

xmtkubia.yaml

apiVersion: v1
kind: Pod
metadata:
  name: xmt-kubia
spec:
  containers:
  - image: xiaomotong888/xmtkubia
    name: xmtkubia
    ports:
    - containerPort: 8080
      protocol: TCP

这样写起来就比较简单了,其实和之前我们使用 docker 来运行成容器的做法原理是一样的,此处是

  • 定义 Kubernates API 版本是 v1

  • 资源类型是 Pod

  • 该 pod 是 基于 xiaomotong888/xmtkubia 镜像的单个容器组成的

kubectl explain

我们可以使用 kubectl explain 来查看有哪些 API 对象,都是支持的那些属性

我们期望查看 pods 的就可以这样来查看

kubectl explain pods

我们期望查看 pod 里面的 spec 对象需要填写哪些字段,我们就可以这样来查看

kubectl explain pod.spec

通过上述方式,就可以看到每一个对象的都有哪些属性,以及如何使用等等

通过上述查看 explain,例如 container 对象后面就带有 required 关键字,也就是说,我们编写 spec 的时候, container 这个对象必须填写

当然,也可以参看 github 文档 , 这里面有详细的说明 , 我们对于每一个属性都进行深究意义并不大,主要是我们会用,后续能够知道其底层原理

pod 的操作方式补充

创建一个 pod

kubectl create -f xmtkubia.yaml

查看 pod

kubectl get pods

查看 pod 的更多信息

kubectl get pods -o wide

得到 pod 的完整描述文件,以 yaml 的方式

kubectl get pod xmt-kubia -o yaml

得到 pod 的完整描述文件,以 json 的方式

kubectl get pod xmt-kubia -o json

查看容器的日志

docker logs 容器id

查看 pod 的日志

kubectl logs pod名字

$ kubectl logs xmt-kubia
xmt kubia server starting...

查看多容器的 pod 的日志

kubectl logs pod名字 -c 容器名字

$ kubectl logs xmt-kubia -c xmtkubia
xmt kubia server starting...

查看 pod 的描述信息

kubectl describe pod pod名字,如:

kubectl describe pod xmt-kubia

如何访问 pod 里面的容器

之前我们有说到过,可以建 一个 service,外部直接访问 service 即可,关于 service 的进阶后面一起分享

在 pod 这一块,我们想要在 本地机器访问 pod 里面的容器,我们本地调试的时候可以使用端口转发的方式来完成

上面的 pod ,我们知道容器里面的服务端口是 8080 , 这个端口对于在本机,肯定是访问不到的,因为 pod 里面有自己独立的文件系统,地址,端口等等

我们将本机的 8088 转发到 容器里面的 8080 端口,可以这样通过 port-forward 来完成

kubectl port-forward xmt-kubia 8088:8080

查看效果

我们打开另一个终端,访问 8080 端口仍然是访问不通的,但是我们本机访问 8088 是可以通的

上述使用 port-forward 简单流程是这样的

使用端口转发的方式测试我们指定的 pod**,这是一种有效的方法**,当然还有其他的方法,后续再分享

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~
更多的可以查看 零声每晚八点直播:https://ke.qq.com/course/417774

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

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

相关文章

用Linux搭建网站(LAMP)

安装环境 演示服务器版本为CentOS 8 安装apache 下载apache yum install httpd httpd-devel 启动apache服务器 systemctl start httpd设置apache开机自启 systemctl enable httpd查看apache运行状态,绿色即正常运行 systemctl status httpd关闭和禁用防火墙 …

Python语言在地球科学领域中的实践技术

Python是功能强大、免费、开源,实现面向对象的编程语言,Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台(x86和arm),Python简洁的语法和对动态输入的支持,再加上解释性语言的本质&…

《Redis 核心技术与实战》课程学习笔记(一)

基本架构:一个键值数据库包含什么? 这样学 Redis,才能技高一筹 为了保证数据的可靠性,Redis 需要在磁盘上读写 AOF 和 RDB,但在高并发场景里,这就会直接带来两个新问题: 一个是写 AOF 和 RDB …

关于Kettle ETL java脚本编写遇到的一些问题记录

Kettle ETL java脚本编写遇到的一些问题记录 1.文本信息输出 使用方法**logBasic()**参数必须是字符串 这部分内容会在ETL的日志窗口显示 2.获取参数数据 1.获取上个节点传输的数据 可以直接在左侧双击获取 2.全局参数获取 在启动运行的变量设置参数 在java代码中获取方式 …

Unity内存分析与优化实践

目录 前言优化前分析Committed Memory Tracking StatusMemory Usage 开始内存优化贴图优化贴图分辨率优化去除透明通道和mipmap其他关于贴图的优化技术 Shader优化优化Always Included Shaders优化Preloaded Shaders优化Shader代码共享Shader 优化Mesh降低屏幕分辨率优化效果内…

IDEA+Spring Boot+MyBatis+shiro+Layui+Mysql智能平台管理系统

IDEAJavaSpring BootMyBatisshiroLayuiMysql智能平台管理系统 一、系统介绍1.环境配置 二、系统展示1.登录2.注册3.发帖4.留言5.提交问卷6.展示公告7.查看文章8.管理员登录9.管理员管理10.用户管理11.问卷管理12.问卷结果管理13.帖子分类管理14.数据分析统计15.公告管理16.帖子…

基于线性准则的考虑风力发电不确定性的分布鲁棒优化机组组合(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Node.js知识梳理(二)——进阶

以下内容来自对《从前端到全栈》一书的学习记录~ 学习的时候用的是V16.20.0,18之后的语法差别还是有的~ 请求优化 我们在请求资源的时候,是需要做优化的,这里的优化涉及到了缓存。浏览器的缓存策略有两种: 强缓存协商缓存 关于…

分解整体:将整体式架构转换为微服务的容器化之旅

传统上,软件应用程序是使用单体架构开发的,其中所有应用程序组件都紧密交织在一起,并作为一个单元进行部署。随着软件应用变得更为复杂,组织开始依赖分布式系统,单体架构的限制开始变得更加明显。容器化被引入作为解决…

关于连接数据库时只能使用localhost而不能使用IP连接的问题解决办法

出现:java.sql.SQLException: null, message from server: "Host DESKTOP-H84MBU3 is not allowed to connect to this MySQL server"问题 解决办法: 1、打开数据库操作命令窗口 2、修改user表中 "root" 所对应的 "host&q…

JMeter之IP欺骗技术(模拟不同的IP地址并发请求)

目录 前言: 第一步:在负载机上绑定IP地址 第二步:点击高级,添加伪造的IP地址 第三步:新增IP地址复制到文本 第四步:新建参数化请求 第五步:新建压力测试脚本 第六步:配置线程…

【Mysql】事务原理与优化最佳实践(四)

前言 我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增 删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题&…

【C】函数

目录 【1】函数是什么 【2】C语言中函数的分类 【2.1】库函数 【2.2】如何学会使用库函数 【2.3】自定义函数 【3】函数的参数 【3.1】实际参数(实参) 【3.2】形式参数(形参) 【4】函数的调用 【4.1】传值调用 【4.2】传址调用 【…

kubernetes环境搭建及部署

一、kubernetes 概述 1、kubernetes 基本介绍 kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源 的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的 应用简单并且高效…

【Python】文件

文章目录 一. 什么是文件二. 文件路径三. 打开文件四. 关闭文件五. 写文件1. 清空写2. 追加写 六. 读文件1. 使用 read 方法读取2. 使用 for 循环按行读取3. 使用 readlines 方法读取整个文件的内容 七. 上下文管理器1. 什么是上下文管理器?2. 为什么要有上下文管理…

ESP8266模块MQTT AT Commands 发送 json字符串

ESP8266 wifi模块介绍 ESP8266EX 由乐鑫公司开发,提供了⼀套⾼度集成的 Wi-Fi SoC 解决⽅案,其低功耗、紧凑设计和⾼稳定性可以满⾜⽤户的需求。ESP8266EX 拥有完整的且⾃成体系的 Wi-Fi ⽹络功能,既能够独⽴应⽤,也可以作为从机…

ORA-31664: unable to construct unique job name when defaulted

某个环境备份不足空间问题处理后,手动执行expdp备份的脚本,报错如下 Export: Release 11.2.0.4.0 - Production on Tue Jul 4 11:46:14 2023 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle D…

【海量数据挖掘/数据分析】之 决策树模型(决策树模型、决策树构成、决策树常用算法、决策树性能要求、信息增益、信息增益计算公式、决策树信息增益计算实例)

【海量数据挖掘/数据分析】之 决策树模型(决策树模型、决策树构成、决策树常用算法、决策树性能要求、信息增益、信息增益计算公式、决策树信息增益计算实例) 目录 【海量数据挖掘/数据分析】之 决策树模型(决策树模型、决策树构成、决策树常…

Windows环境部署MySQL_5.7的安装、测试连接以及卸载全过程实操手册

前言: 前面记录了双环境的oracle的安装卸载及相关测试评估,这里记录下 MySQL5.7社区免费版的部署手册。 什么是 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle 公司。MySQL 是一种关系型数…

window.open()实现PDF预览

效果图如下: 页面使用: window.open(strUrl) 参数说明如下图: