k8s------Pod、Label、NameSpace

一、Pod: Kubernetes中的最小调度对象

1.1 说明

Pod(容器组)是k8s创建和调度的最小单元。一个Pod封装多个容器(container)、存储资源(volume)、一个独立网络ip和管理控制容器运行方式。

Pod可以单独运行一个容器,也可以兼容多个容器运行,多个容器共享资源。

1.2 Pod创建

yaml示例:创建一个名为nginx的Pod,这个Pod中包含一个名为container-0的容器,使用nginx:alpine镜像,使用的资源为100m core CPU、200Mi内存。

  • metadata:一些名称/标签/namespace等信息。
  • spec:Pod实际的配置信息,包括使用什么镜像,volume等。

 Pod定义好后就可以使用kubectl创建,如果上面YAML文件名称为nginx.yaml,则创建命令如下所示,-f表示使用文件方式创建。

$ kubectl create -f nginx.yaml
pod/nginx created

1.3 Pod信息查询

Pod创建完成后,使用命令查询Pod状态

 $ kubectl get pods
NAME           READY   STATUS    RESTARTS   AGE
nginx              1/1             Running             0          40s

READY为1/1,表示这个Pod中有1个容器,其中1个容器的状态为Ready。

-o 表示输出形式
name:仅打印资源名称而不打印其他内容。
wide:以纯文本格式输出额外信息,对于 Pod 来说,输出中包含了节点名称。
示例
kubectl get pods -A -o=wide:获取所有 Pod 的详细信息,包括节点名称。
kubectl get pods -A -o=yaml:获取所有 Pod 的 YAML 格式信息。
kubectl get pods --sort-by=.metadata.name:按名称排序输出所有 Pod。
kubectl get pods -o custom-columns=NAME:.metadata.name,RESC:.metadata.resourceVersion:根据自定义列名输出 Pod 的名称和资源版本。

使用kubectl describe命令查看Pod的详情。

$ kubectl describe pod nginx 

1.4 Pod删除

        删除pod时,Kubernetes终止Pod中所有容器。 Kubernetes向进程发送SIGTERM信号并等待一定的秒数(默认为30)让容器正常关闭。如果它没有在这个时间内关闭,Kubernetes会发送一个SIGKILL信号杀死该进程。 

按名删除Pod

$ kubectl delete po nginx pod1 pod 2
pod "nginx" deleted

删除所有Pod。

$ kubectl delete po --all
pod "nginx" deleted

根据Label删除Pod

$ kubectl delete po -l app=nginx
pod "nginx" deleted

1.5 使用环境变量

配置spec.containers.env字段

 查询环境变量

1.6 容器启动命令

启动容器就是启动主进程,启动前需要的前置操作可以通过,CMD或ENTRYPOINT完成,示例使用Dockerfile中设置ENTRYPOINT ["top", "-b"]

FROM ubuntu
ENTRYPOINT ["top", "-b"]

实际使用时,只需配置Pod的containers.command参数,该参数是list类型,第一个参数为执行命令,后面均为命令的参数。 

1.7 容器的生命周期

容器生命周期钩子,完成容器前后命令操作处理。

  • 启动后处理(PostStart):容器启动后触发。
  • 停止前处理(PreStop):容器停止前触发。

 实际使用时,只需配置Pod的lifecycle.postStart或lifecycle.preStop参数,如下所示。

二、存活探针(Liveness Probe 监控检查)

2.1 背景介绍

        k8s的自愈能力只能保证Pod崩溃后重启,但是如内存泄漏,JVM进程存活,但是容器进程不可用,无法自愈,提供存活探针完成容器健康检查。分成三种探测机制:

  • HTTP GET:向容器发送HTTP GET请求,如果Probe收到2xx或3xx,说明容器是健康的。
  • TCP Socket:尝试与容器指定端口建立TCP连接,如果连接成功建立,说明容器是健康的。
  • Exec:Probe执行容器中的命令并检查命令退出的状态码,状态码为0说明容器是健康的。

2.2 HTTP GET

        

2.3 TCP Socket

2.4 Exec 

2.5 高级配置

  • delay:延迟,delay=0s,表示在容器启动后立即开始探测,没有延迟时间
  • timeout:超时,timeout=1s,表示容器必须在1s内进行响应,否则这次探测记作失败
  • period:周期,period=10s,表示每10s探测一次容器
  • success:成功,#success=1,表示连续1次成功后记作成功
  • failure:失败,#failure=3,表示连续3次失败后会重启容器

 

三、Label

3.1 为什么需要Label

Pod过多时管理起来不方便,通过Label可以进行标记分类。

标签管理分类前:

标签管理分类后:

3.2 添加Label

Label 是key-Value形式,示例如下:

--show-labels 查询时展示Label信息

-L只查询固定标签

 对已存在的Pod,直接使用kubectl label命令直接添加Label。

修改Label

四、NameSpace

4.1 目的

使用NameSpace主要是可以把资源进行分组。组织上划分,对运行的对象来说,它不能做到真正的隔离。举例来说,如果两个Namespace下的Pod知道对方的IP,而Kubernetes依赖的底层网络没有提供Namespace之间的网络隔离的话,那这两个Pod就可以互相访问。

 4.2 指定NameSpace查询

coredns是用于做服务发现、everest-csi是用于对接存储服务、icagent是用于对接监控系统。

kube-system这个命名空间中,能够做到与其他Pod之间隔离。

4.3 创建Namespace

apiVersion: v1 
kind: Namespace 
metadata: 
  name: custom-namespace 

使用kubectl命令创建。

$ kubectl create -f custom-namespace.yaml
namespace/custom-namespace created

您还可以使用kubectl create namespace命令创建。

$ kubectl create namespace custom-namespace 
namespace/custom-namespace created

在指定Namespace下创建资源。

$ kubectl create -f nginx.yaml -n custom-namespace 
pod/nginx created

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7.9 安装图解

特特特别的说明 CentOS发行版已经不再适合应用于生产环境,客观条件不得不用的话,优选7.9版本,8.5版本次之,最次6.10版本(比如说Oracle 11GR2就建议在6版本上部署)! 引导和开始安装 选择倒计时结…

CS架构抓包——Fiddler+ Proxifier

Fiddler 1、配置好fiddler作为代理服务器的端口号,允许https代理 捕获https连接 fiddler在端口侦听8888端口,捕获http请求 Proxifier 1、proxifier允许启用http代理服务器 2、CS客户端添加代理服务器的IP地址及端口号 3、添加代理规则:使用f…

警惕!Citrix NetScaler ADC 和 NetScaler Gateway漏洞风险通告

近日,亚信安全CERT监控到Citrix发布了NetScaler ADC 和 NetScaler Gateway的安全公告,披露了2个安全漏洞CVE-2023-6548和CVE-2023-6549。其中CVE-2023-6548为远程代码执行漏洞,该漏洞可导致 NetScaler 管理接口和未修复的NetScaler 实例易遭远…

第5章 现代通信网

文章目录 5.1 通信网概述5.1.1 通信网的构成要素5.1.2 通信网的发展演进 5.2 交换与控制5.2.1 交换的基本概念1、电路交换2、报文交换3、分组交换4、3种交换技术的比较 5.2.2 IP交换1、IP交换机的构成2、IP 交换的工作原理 5.2.3 IP多媒体子系统 5.3 传输网5.3.1 有线传输1、光…

将x, y, z 列表变成 [x,y,z]格式

如下图所示表格 方法: //处理数据 将x y z 合并成[x,y,z]let dealData (xList, yList, zList) > {let result []for(let i 0; i < yList.length; i){for(let j 0; j < xList.length; j){result.push([xList[j],yList[i], zList[i*yList.length j]])}}return re…

2024 CKA 题库 | 11、创建 PVC

不等更新题库 文章目录 11、创建 PVC题目:考点&#xff1a;参考链接:解答:更换 context创建 pvc创建 pod修改 pvc 并记录 11、创建 PVC 题目: 设置配置环境&#xff1a; [candidatenode-1] $ kubectl config use-context ok8sTask 创建一个新的 PersistentVolumeClaim&#x…

VUE--组件通信(非父子)

一、非父子通信 --- event bus 事件总线 作用&#xff1a;非父子组件之间进行简易的消息传递 步骤&#xff1a; 1、创建一个都能访问到的事件总线&#xff08;空vue实例&#xff09;--- utils/EventBus.js import Vue from vue export default new Vue({}) 2、 接收方&…

test测试

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 磁盘满的本质分析 专栏&#xff1a;《Linux从小白到大神》 | 系统学习Linux开发、VIM/GCC/GDB/Make工具…

静态分析工具的评估测试

原文链接&#xff1a;静态分析工具的评估测试-云社区-华为云 0. 前言 忙忙碌碌又一年&#xff0c;似乎始终都在工具的误报、漏报、能力对比三个问题之间打转转。说“反思”也好、“回溯”也好、“复盘”也好&#xff0c;也和同事、朋友、同行讨论过多次测试用例对这个三个问题…

新书速览|ASP.NET Core+Vue.js全栈开发训练营

使用ASP.NET 7与Vue.js 3构建功能丰富、高效的Web应用程序ASP.NET、Vue.js、全栈开发、Web应用开发 本书内容 《ASP.NET CoreVue.js全栈开发训练营》旨在为读者提供一个全面、实用的学习资源&#xff0c;以掌握使用ASP.NET Core 7和Vue.js 3构建功能丰富、高效的Web应用程序的技…

编程和数值计算平台:MATLAB R2023a(Win/Mac)激活版

MATLAB R2023a是一款强大的数值计算和科学编程软件&#xff0c;广泛应用于工程、科学和数学领域。 win版&#xff1a;https://soft.macxf.com/soft/3541.html?idMzE5MTM%3D mac版&#xff1a;https://www.macz.com/mac/9321.html?idOTI2NjQ5Jl8mMjcuMTg2LjkuOTg%3D 以下是MAT…

【Linux修行路】基本指令

目录 推荐 前言 1、重新认识操作系统 1.1 操作系统是什么? 1.2操作系统的作用 1.3 我们在计算机上的所有操作 1.4 Linux操作的特点 2、Linux基本指令 2.1 ls 指令 2.2 pwd 命令 2.3 cd 指令 2.3.1 Linux中的目录结构 2.3.2 绝对路径和相对路径 2.3.3 cd 指令 …

SpringCloud整合Zookeeper代替Eureka案例

文章目录 本期代码下载地址zookeeper简介zookeeper下载安装新建服务提供者测试 新建消费者测试 本期代码下载地址 地址:https://github.com/13thm/study_springcloud/tree/main/days4 zookeeper简介 zookeeper是一个分布式协调工具&#xff0c;可以实现注册中心功能 关闭Lin…

uniapp实现微信小程序富文本之mp-html插件详解

uniapp实现微信小程序富文本之mp-html插件 1 文章背景1.1 正则表达式1.2 mp-html插件1.3 uniapp 2 过程详解2.1 下载mp-html插件2.2 项目中引入mp-html2.3 引入正则规范图片自适应2.4 效果展示 3 全部代码 1 文章背景 1.1 正则表达式 正则表达式&#xff0c;又称规则表达式,&…

Java面相对象基础

目录 1、继承 2、定义类 3、规则 4、封装 5、private 6、this 就近原则 7、构造方法 8、标准的JavaBean 9、基本数据类型和引用数据类型 10、this的内存原理 11、成员和局部 1、继承 继承是java面向对象编程技术的一块基石&#xff0c;因为它允许创建分等级层次的类…

在gitlab中使用gitlab-sshd替换ssh服务

在gitlab15.9之后&#xff0c;gitlab-sshd成为了gitlab的服务组件之一&#xff0c;从而使得open-ssh不再是必需品&#xff0c;本篇主要讲配置。 配置&#xff08;gitlab.rb&#xff09; 启用gitlab-sshd gitlab_sshd[enable] true gitlab_sshd[listen_address] [::]:2222g…

算法题-爬楼梯-不同思路解法

主要记录个人思考过程&#xff0c;不同方案实现思路的演变 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;…

百度搜索Push个性化:新的突破

作者 | 通用搜索产品研发组 导读 本文简单介绍了百度搜索Push个性化的发展过程&#xff0c;揭示了面临的困境和挑战&#xff1a;如何筛选优质物料、如何对用户精准推荐等。我们实施了一系列策略方法进行突破&#xff0c;提出核心的解决思路和切实可行的落地方案。提升了搜索DAU…

司铭宇老师:房产销售培训机构/培训公司:如何让房地产培训课程更加有效和落地?

房产销售培训机构/培训公司&#xff1a;如何让房地产培训课程更加有效和落地&#xff1f; 房产销售培训是当前房地产行业中不可或缺的一环。随着市场竞争的加剧&#xff0c;房地产企业对于销售团队的培训需求也越来越迫切。然而&#xff0c;传统的房产销售培训效果并不理想&am…

触摸按键控制LED灯

目录 1.理论 2.代码 2.1 touch_ctrl_led.v 2.2 tb_touch_ctrl_led 1.理论 以上的波形图的touch_flag是采用组合逻辑的方式产生的。 以上的touch_flag是采用时序逻辑产生的&#xff0c;时序逻辑会延迟一拍。 以上是上升沿和下降沿的组合逻辑和时序逻辑实现&#xff0c;逻辑或…