当前位置: 首页 > news >正文

k8s基础(1)—Kubernetes-Pod

一、Pod简介

Pod是Kubernetes(k8s)系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型‌。Pod是由一个或多个容器组成的,这些容器共享存储和网络资源,可以看作是一个逻辑的主机‌。

Pod的基本概念和功能

  1. 资源共享‌:Pod内的多个容器可以共享存储(Volume)和网络IP地址。这种共享是通过一个名为pause容器的基础容器来实现的,pause容器与业务容器没有直接关系,但其状态代表整个Pod的状态‌。
  2. 容器间通信‌:Pod内的容器共享网络接口和IPC命令空间,因此它们可以直接通信和共享文件。这种设计简化了容器间的交互和协调‌。
  3. 调度和管理‌:Pod是通过Kubernetes调度器调度到工作节点上运行的。Pod的创建和管理通常由控制器(如Deployment或StatefulSet)进行,这些控制器负责按需创建和删除Pod实例,以实现应用的水平扩展‌。

Pod的使用场景和优势

  1. 应用部署‌:Pod是运行应用的最小单位。如果需要水平扩展应用(例如,运行多个实例),则应使用多个Pods,每个实例一个Pod。这种设计使得应用的扩展和管理变得更加灵活和高效‌12。
  2. 紧密耦合的服务‌:当多个容器需要紧密耦合、互相协作时,可以将它们放在同一个Pod中。例如,一个主服务容器和一个用于日志收集的“sidecar”容器可以共享存储和网络资源‌。
  3. 简化管理‌:通过Pod管理多个容器,简化了容器的生命周期管理和资源分配。Pod提供了一个统一的资源管理界面,使得资源的分配和使用更加高效和灵活‌。

二、Pod创建和删除

(一) 使用命令行创建和删除

#创建mynginx podkubectl run mynginx --image=nginx#使用命令行删除podkubectl delete pod mynginx#查看启动pod时的具体信息kubectl describe pod  mynginx#查看Pod运行日志kubectl logs pod名称#每个pod k8s都会给它分配一个IP,保证每一个pod都可以被访问到kubectl get pod dashboard-metrics-scraper-7fc7cd8b6-bgz9r -owide -n kubernetes-dashboard#配置pod的网络kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard#进入到nginx的控制台中kubectl exed -it mynginx -- /bin/bash#使用yaml文件创建mynginx pod
vim createPod.yaml 
apiVersion: v1
kind: Pod
metadata:labels:run: mynginxname: mynginx
spec:containers:- image: nginxname: mynginx#启动pod
kubectl apply -f createPod.yaml

(二) 使用dashboard可视化页面创建和删除

1、指定NameSpace创建pod的方法

方法一:直接选择制定的标签

方法二:在yaml配置中添加namespace标签
apiVersion: v1
kind: Pod
metadata:labels:run: mynginxname: mynginxnamespace: default
spec:containers:apiVersion: v1
kind: Pod
metadata:labels:run: mynginxname: mynginxnamespace: default
spec:containers:- image: nginxname: mynginx- image: nginxname: mynginx

2、在dashborad上删除pod

3、进入容器终端dashboard操作和命令行操作

3.1、命令行操作

#进入testnginx容器的终端 kubectl exec -it testnginx -- /bin/bash

3.2、在dashbaord页面进行上述操作

(三) 一个pod有多个应用的写法

apiVersion: v1
kind: Pod
metadata:labels:run: myappname: myappnamespace: default
spec:containers:- image: nginxname: nginx- image: tomcat:8.5.68name: tomcat

三、Pod启动部署问题解决

(一) 出现cni网络问题处理方法

如下报错:

处理方法:

$ mv /etc/containerd/config.toml{,.bak}
$ systemctl restart containerd#如果这一步不管用;从节点上也执行如下(首先先将主机点上的$HOME/.kube/config复制到从节点)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

(二) 同一个pod中同时存在多个应用之间互相访问方法和资源存储分布情况

同一个pod中的应用共享网络空间和存储,如nginx访问tomcat只需要访问127.0.0.1:8080 即可

http://www.lryc.cn/news/516595.html

相关文章:

  • iOS - 数组的真实类型
  • k8s启动报错
  • git:指令集
  • 自闭症家庭:建立支持系统与平衡生活
  • html+css+js网页设计 美食 美食天下2个页面(里面包含php和mysql)
  • 高阶知识库搭建实战七、(知识库雏形开发:qianwen-plus+Faiss)(练习推荐)
  • 麒麟服务器安装kafka--亲测
  • 微机——8086微处理器的数据传送指令
  • vue3中onUpdated钩子函数和nextTick的具体使用场景和区别
  • colnames看似简单,却能优化数据处理流程
  • 欧几里得距离在权重矩阵中的物理意义
  • AI编程辅助开发网站
  • 「Mac畅玩鸿蒙与硬件53」UI互动应用篇30 - 打卡提醒小应用
  • 基于单片机洗衣机控制器的设计(论文+源码)
  • 【Git系列】解析与解决Git错误:RPC失败;curl 56 OpenSSL SSL_read: error:140943FC
  • [Unity Shader] 【游戏开发】Unity基础光照1-光照模型原理
  • 基于Python 的宠物管理系统(源码+部署)
  • console.log封装
  • 戴尔/Dell 电脑按什么快捷键可以进入 Bios 设置界面?
  • GitLab创建用户,设置访问SSH Key
  • Mysql--基础篇--SQL(DDL,DML,窗口函数,CET,视图,存储过程,触发器等)
  • 比较 FreeSWITCH 的 asr 事件和回调函数
  • 基于ffmpeg和sdl2的简单视频播放器制作
  • 卫星导航信号的形成及解算
  • 硬件-射频-PCB-常见天线分类-ESP32实例
  • salesforce 验证规则判断一个picklist是否为none
  • 解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
  • 如何分析 Nginx 日志
  • Kubernetes Gateway API-5-后端协议和网关基础设置标签
  • 大数据架构演变