kubernetes的pod基础

news2024/11/27 22:38:56
  • kubernetes的pod基础

    • pod概念

      • pod(豆荚),是k8s的最小管理单元。是一个或多个容器的组合,这些容器共享存储,网络和命名空间,以及运行规范,pod内的容器统一的进行安排和调度。pod是一组具有共享命名空间,IP地址和端口的容器的集合。

      • pod中必须包含的一个容器pause容器,该容器是容器内其他容器的父容器,主要负责回收僵尸进程,可以让同一个pod内的不同容器共享粗出,网络,pid等。

    • pod的特点

      • 网络

        • 每一个pod都会被指派唯一的一个IP地址,pod中每一个容器共享网络命名空间,包括网络端口。在同一个pod内的容器可以通过localhost互相通信。需要与外部通信时,需要通过端口映射来实现。

      • 存储

        • pod能被指定共享存储卷的集合,pod中的所有容器都能访问该存储卷,也支持持久化存储。

    • pod的命令

      • 创建pod

        • kubectl run pod名 --image=镜像名 --labels=“app=nginx”

            • kubectl run nginx --image=nginx:1.7.9 --labels="app=nginx“

        • 如果不指定pod到指定的命名空间,默认会创建到default的空间

      • 查看pod

        • kubectl get pod

          • 不加命名空间,查看的是default空间的pod

          • -A 显示所有命名空间

          • 获取到的pod的状态

              • 常见的pod的状态

        • 显示pod的详细信息

          • kubectl get pod pod名 -o wide

            • 除了显示基本信息外还显示了分配的IP,所在节点等信息
          • kubectl get pod名 -o yaml

            • 以yaml格式显示pod的详细信息

        • 查看pod日志

          • kubectl logs pod名称

        • kubectl describe pod pod名

        • kubectl get 常用于获取同一资源类型的一个或者多个资源对象,可以使用-o 指定输出格式

        • kubectl describe 侧重于描述指定资源的各方面的详细信息,不仅会返回节点信息,还会返回在其上运行的pod的摘要,事件信息等。

      • 对pod中容器的操作

        • 在特定的容器中执行指定的命令

            • kubectl exec nginx -c nginx-- date

              • -c 容器名称

              • -- 后跟需要执行的命令

        • 登录容器

          • kubectl exec it nginx -c nginx -- bash

            • 如过不加-c指定容器则会登录到第一个容器中

        • 在线编辑运行中的资源对象

          • kubectl edit pod nginx

            • 以yaml格式显示,修改完毕后退出即可生效

        • 端口映射

          • kubectl port-forward --address 0.0.0.0 pod/nginx 8080:80

            • --address 是主机的IP地址

            • 命令会在前台运行,适合临时测试使用,停止该进程后,映射就停止。

        • 在宿主机与容器之间拷贝文件

          • 拷贝容器内的文件到宿主机

            • kubectl cp 容器名:文件路径 宿主机存放位置(支持重命名)

          • 拷贝宿主机上的文件到容器内,命令不变位置改变即可。

      • 删除pod

        • kubectl delete pod pod名

    • pod探针

      • 为了确保运行起来的容器能够处理请求,k8s采用了探针机制来进行健康状态检查

      • pod探针实现健康状态检查的方式

        • Execaction

          • 在容器内执行命令,如果返回值为0,认为容器健康

        • TCPsocketAction

          • 通过tcp连接检查指定容器的端口,如果端口开放,认为容器正常

        • HTTPGetAction

          • 对指定的uri进行Get请求,如果状态码在200-400之间,认为容器正常。

      • pod探针检查容器后获得的状态

        • success

          • 成功通过检查

        • failure

          • 容器检查失败

        • Unknown

          • 未知,不采取任何措施

      • pod探针的种类

        • livenessProbe

          • 存活探针,判断容器是否正常运行,如果失败则杀掉容器(注意不是pod),然后根据重启策略决定是否重启容器。

        • readinessProbe

          • 就绪探针,判断容器是否进入ready状态,如果没有则从service的endpoints中删除该容器。

        • startupProbe

          • 启动探针,判断容器内应用是否启动成功,在success状态之前其他探针都处于无效状态。

            • 拿开机来说,该探针负责检测能否开机,开机后其他探针才能进行工作。本质上没有依赖关系,是为了避免资源浪费。

    • pod的镜像拉取

      • 策略

        • always

          • 总是网上拉取

        • Never

          • 从不网上拉取

        • IFNotPressent

          • 本地没有镜像则网上拉取,如果则用本地的,但如果镜像标签为latest,为了保证镜像的版本是最新的,则总会采用网上拉取的方式。

      • 命令

        • kubectl run nginx --image=nginx:1.7.9 --labels="app=nginx" --image-pul1-policy=Never

    • pod的重启策略

      • 策略

        • Always

          • 在容器失效时,总是重启该容器

        • OnFailure

          • 容器以不为0的状态码终止,则会重启该容器

        • Never

          • 从不重启

      • 命令

        • kubectl run nginx --image=nginx:1.7.9 --labels="app=nginx" --restart=OnFailure

    • pod的编排文件

      • 为了批量,附加属性更多,采用命令较为麻烦,因此编排文件就可以帮助我们进行实现以上功能

      • pod编排文件也叫资源清单,采用yaml格式编写,因此要注意同级缩进与键值对的书写格式。

        • 声明式要求

      • pod的资源清单列表

      • 文件语法

        • pod文件的一级属性

          • apiVersion

            • 必须能用kubectl api-versions能查询到

            • 不同的版本对应不同的资源类型需要对应

          • kind(种类)

            • 资源类型,必须能用kubectl api-resources查询到

          • metadata(元数据)

            • 主要是资源表示和说明

              • 常用的

                • name

                • namespace

                • labels

          • spec(规范,规格)

            • 配置中最重要的部分,是对各个资源的详细描述

              • containers 容器列表,定义商城的详细信息

              • nodeName,根据nodeName的值将pod调度到指定的node节点上。

              • nodeselector 根据该参数定义的信息选择将该pod调度到包含这些label的node上。

                • selector 选择器

              • hostNetwork 是否使用宿主机网络,默认为false,设置为true表示使用宿主机网络。

              • volumes存储卷,用于定义pod上面挂载的存储信息。

              • restartPolicy重启策略,表示pod在遇到故障时的处理策略。

          • status(状态信息)

            • 一般由k8s自动生成

        • 查看各个资源的可配置项

          • kubectl explain pod

          • kubectl explain deployment

          • kubectl explain service

          • kubectl explain pod.metadata

          • kubectl explain pod.spec.containers

          • 语法

            • kubectl explain 资源类型

            • kubectl explain 资源类型.子属性

      • 简单的pod编排文件的案例

        • 通过编排文件进行启动

          • kubectl apply -f 编排文件

            • 会在创建是依据文件更新资源

          • kubectl create -f 编排文件

            • 创建时资源已存在则失败

    • 暴露端口

      • kubectl expose pod nginx-php --port=8080 --target-port=80 --type=NodePort --name=nginx-php

        • service有关

      • 查看端口映射

        • kubectl get svc pod名 -o wide

    • 通过kubeadm安装的在/etc/kubenetes/maninfests/下

      • 在该目录下放置编排文件会自动生成对应的pod,被称为静态pod。

      • 不能通过apiserver进行管理,放在那个node上那个node该pod就会固定生成在那个node上。

      • 删除办法

        • 删除对应的文件对应的pod就会被删除

    • pod的启动阶段

      • pending

        • 已接受但没进行实际处理

      • running

        • 容器正常运行

      • succeeded

        • 不持续运行的pod的运行完毕的退出状态

      • failed

        • 所有容器都已经终止

      • unknown

        • 未知状态

    • pod类的故障排除步骤

      • 查看pod事件

        • kubectl describe TYPE NAME PREFIX

      • 查看pod日志

        • kubectl logs <POD NAME>[-c Container NAME]

      • 状态为running但是服务不正常

        • kubectl exec -it <POD NAME> bash

      • 查看集群信息

        • kubectl get nodes -o wide

        • kubectl cluster-info

      • 查看kubelet日志

        • journalctl -xefu kubelet

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

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

相关文章

智慧党建系统设计与实现_1i659

TOC springboot629智慧党建系统设计与实现_1i659--论文 研究背景 近年来&#xff0c;由于计算机技术和互联网技术的快速发展&#xff0c;使得所有企事业单位内部都是数字化、信息化、无纸化的发展趋势&#xff0c;随着趋势的发展&#xff0c;各种决策系统、辅助系统也应运而…

Java | Leetcode Java题解之第350题两个数组的交集II

题目&#xff1a; 题解&#xff1a; class Solution {public int[] intersect(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);int length1 nums1.length, length2 nums2.length;int[] intersection new int[Math.min(length1, length2)];int index1 …

27.移除元素---力扣

题目链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/remove-element/description/ 问题描述&#xf…

Maven的简单使用

Maven使用 Maven的作用1. 自动构建标准化的java项目结构(1) 项目结构① 约定目录结构的意义② 约定大于配置 (2)项目创建坐标坐标的命名方法&#xff08;约定&#xff09; 2. 帮助管理java中jar包的依赖(1) 配置使用依赖引入属性配置 (2) maven指令(3) 依赖的范围(4) 依赖传递(…

Vitis AI 进阶认知(Torch量化基础+映射+量化参数+对称性+每通道+PTQ+QAT+敏感性)

目录 1. 介绍 2. 基本概念 2.1 映射函数 2.2 量化参数 2.3 校准 2.4 对称与非对称量化 2.5 Per-Tensor and Per-Channel 2.6 PTQ 2.7 QAT 2.8 敏感性分析 2.6 退火学习率 3. 几点建议 4. 总结 1. 介绍 Practical Quantization in PyTorch | PyTorchQuantization i…

OpenCV几何图像变换(4)亚像素图像截取函数getRectSubPix()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 从图像中以亚像素精度检索像素矩形。 getRectSubPix 函数从 src 中提取像素&#xff1a; p a t c h ( x , y ) s r c ( x center.x − ( dst.…

怎么为pdf文件加密设置密码?8个实用pdf文件加密方法

随着数字化信息的普及&#xff0c;保护PDF文件免受未授权访问和篡改的需求日益增强。为了确保您的重要文档安全无虞&#xff0c;加密PDF文件并设置密码成为了一个至关重要的步骤。以下是详细指导&#xff0c;帮助您为PDF文档加密并设置密码&#xff0c;确保其内容的安全。怎么为…

深入理解Java虚拟机(类加载器)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 类加载器 类加载器有什么作用呢&#xff1f; 对于任意的一个类&a…

基于一阶高斯低通滤波器的软件设计

前言 一阶RC低通滤波器&#xff08;巴特沃斯滤波&#xff09;-CSDN博客 一阶高斯低通滤波器不是一个直接的概念&#xff08;因为一阶滤波器通常不产生高斯型频率响应&#xff09;&#xff0c;这里我用软件的方式来模拟高斯低通滤波器的效果。 有纰漏请指出&#xff0c;转载…

C++竞赛初阶L1-13-第五单元-循环嵌套(29~30课)538: T456457 第 n 小的质数

题目内容 输入一个正整数 n&#xff0c;求正整数范围中第 n 小的质数。 输入格式 一个不超过 30000 的正整数 n。 输出格式 第 n 小的质数。 样例 1 输入 10 全部程序代码&#xff1a; #include<bits/stdc.h> using namespace std; int main() {long long n,i;ci…

【数据分享】《中国社会统计年鉴》(2006-2023)

而今天要限时免费分享的数据就是2006-2023年间出版的《中国社会统计年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 数据介绍 一、《中国社会统计年鉴》是一部反映我国社会发展相关领域基本情况的综合性统计资料年刊。书中收录了年全国和…

Leetcode每日刷题之1004.最大连续1的个数|||(C++)

1.题目解析 本题的目的是找出能最多翻转k个0的情况下最长连续的1的个数&#xff0c;并且这是一个二进制数组&#xff0c;只存在0和1&#xff0c;翻转0就是将0变为1 2.算法原理 首先我们想到的一定是暴力枚举&#xff0c;即依次列举出在最多翻转k个0的情况下所有连续1的子数组的…

类和对象(下)(2)

类和对象&#xff08;下&#xff09;(2) static成员 • ⽤static修饰的成员变量&#xff0c;称之为静态成员变量&#xff0c;静态成员变量⼀定要在类外进⾏初始化。 • 静态成员变量为当前类的所有对象所共享&#xff0c;不属于某个具体的对象&#xff0c;不存在对象中&#…

m4a转wav,使用FFmpeg和Python将M4A文件转换为WAV

你可以使用Python程序或Linux命令来将M4A文件转换为WAV文件。下面分别介绍这两种方法。 方法一:使用FFmpeg命令行工具(Linux命令) FFmpeg 是一个强大的多媒体处理工具,支持音视频转换、处理等操作。你可以在终端中使用以下命令将M4A文件转换为WAV文件: ffmpeg -i input…

网络通信(1)

网络&#xff1a; 不同主机间的通信问题 实现网络通信 物理层面 有一个 信息通路 &#xff08;有线 &#xff1b;无线 &#xff1b;5G&#xff1b;4G&#xff1b;星链 &#xff09;软件层面(逻辑层面) 也需要 一个通路 网络编程 Open System Interconnect (OSI网…

[OC]萝卜圈玩行车记录仪

图1-1&#xff0c;你的手动小车 代码是 #机器人驱动主程序 #请在main中编写您自己的机器人驱动代码 import tkinter as tk import turtle v0 # 速度 accFalse;slowFalse;leftFalse;rightFalse # 按键状态 step0.5 # 一次速度变化量 def keyup_press(event):global acc;accTru…

归并排序(Java实现)

目录 归并排序的思想 代码实现 思路 代码 归并排序的特点 归并排序的思想 归并排序的核心思想是分治&#xff0c;分而治之&#xff0c;就是把数组先分成若干个子数组&#xff0c;先将这些子数组排序后&#xff0c;再合并到一起去。 我们常说的归并排序是二路归并排序&…

uview-plus upload组件在上传视频在小程序环境下点击无反应

你们好&#xff0c;我是金金金。 场景 我正在使用uniapp开发微信小程序&#xff0c;使用的vue3&#xff0c;所以集成的uview-plus这个ui库 代码非常的简单&#xff0c;就是一个上传组件 在h5环境下点击是可以上传视频的&#xff0c;在微信小程序开发者工具里面点击完全没反应…

初阶数据结构之计数排序

非比较排序 计数排序 计数排序⼜称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应⽤。 操作步骤&#xff1a; 1&#xff09;统计相同元素出现次数 2&#xff09;根据统计的结果将序列回收到原来的序列中 #include "CountSort.h" void Count(int* arr, int n)…

利用GBDT进行对表格类数据的机器学习的实战项目

一&#xff1a;题目简介 在数据集中&#xff0c;每个样本都对应一个葡萄牙大学的学生。原始数据集中共有4424名学生&#xff0c;。对于每个学生&#xff0c;我们获得了人口统计数据、宏观经济数据以及课程前两个学期的表现。目标是预测学生在三年或四年学习后的状态&#xff1…