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

pod相关面试题总结(持续更新)

1 当一个Pod有多个容器时,如果连接到指定的容器?

#查看当前空间下的pod
[root@master210 pods]# kubectl get pods
NAME                   READY   STATUS    RESTARTS   AGE
linux85-nginx-tomcat   2/2     Running   0          63s
[root@master210 pods]# 
[root@master210 pods]# kubectl exec -it linux85-nginx-tomcat -- sh  # 默认连接到第一个容器
Defaulted container "nginx" out of: nginx, tomcat
/ # 
/ # 
/ # 
[root@master210 pods]# kubectl exec -it linux85-nginx-tomcat -c nginx -- sh  # 连接nginx容器
/ # 
[root@master210 pods]# kubectl exec -it linux85-nginx-tomcat -c tomcat -- sh  # 连接tomcat容器
/usr/local/tomcat # 

可通过-c 容器名指定
早期版本中,可能没有提示Pod容器的名称,可以采用以下三种方式查看容器名称。
cat 02-nginx-tomcat.yaml
kubectl describe pod linux85-nginx-tomcat
kubectl get pods linux85-nginx-tomcat -o yaml

2: 如果查看一个Pod最近20分钟的日志?

[root@master210 pods]# kubectl logs -c nginx -f  --timestamps --since=20m linux85-nginx-tomcat 
 -c:
	指定要查看的容器名称。
 -f:
	实时查看日志。
 --timestamps :
	显示时间戳相关信息。
 --since=20m 
	查看最近20分钟内的日志

3: 如何查看一个Pod上一个容器的日志,上一个挂掉的容器日志?

[root@master210 pods]# kubectl logs -c tomcat -f  --timestamps -p  linux85-nginx-tomcat 

4: 使用kubectl logs无法查看日志是什么原因,如何让其能够查看呢?

使用"kubectl logs"查看的是容器的标准输出或错误输出日志,如果想要使用该方式查看,需要将日志重定向到/dev/stdout或者/dev/stderr。

5: 如何实现Pod的容器的文件和宿主机之间相互拷贝?

[root@master210 pods]# kubectl get pods
NAME               READY   STATUS    RESTARTS   AGE
linux85-game-014   1/1     Running   0          3m10s
[root@master210 pods]# kubectl cp linux85-game-014:/start.sh /tmp/1.sh  # 拷贝文件
[root@master210 pods]# kubectl cp linux85-game-014:/etc /tmp/2222  # 拷贝目录
[root@master210 pods]# ll /tmp/
total 16
-rw-r--r--  1 root root 3369 Apr 13 17:01 1.sh
drwxr-xr-x 20 root root 4096 Apr 13 17:02 2222
    - 将宿主机的文件拷贝到Pod的容器中
[root@master210 pods]# kubectl cp 01-nginx.yaml linux85-game-014:/
[root@master210 pods]# 
[root@master210 pods]# kubectl cp /tmp/2222/ linux85-game-014:/
[root@master210 pods]# 
[root@master210 pods]# kubectl exec linux85-game-014 -- ls -l /
total 24
-rw-r--r--    1 root     root           301 Apr 13 09:03 01-nginx.yaml
drwxr-xr-x   20 root     root          4096 Apr 13 09:04 2222

6: 镜像下载策略有哪些?请分别说明?

在 Kubernetes 中,镜像下载策略(Image Pull Policy)用于决定在创建 Pod 时如何从镜像仓库中拉取容器镜像。Kubernetes 提供了三种主要的镜像下载策略,分别是:
Always
IfNotPresent
Never

  1. Always
    说明: 每次启动 Pod 时,Kubernetes 总是从镜像仓库拉取最新版本的镜像,即使本地已经存在相同的镜像版本。
    使用场景:
    适用于开发和测试环境,确保容器每次启动时都使用最新的镜像。
    适用于镜像标签为 latest 的场景,因为 latest 标签不固定,镜像内容可能会不断更新。
    指定方式: 在 Pod 配置文件中设置 imagePullPolicy: Always。
    默认行为: 当镜像标签为 latest 时,Kubernetes 默认使用 Always 策略。
    例:
spec:
  containers:
  - name: my-container
    image: my-app:latest
    imagePullPolicy: Always
  1. IfNotPresent
    说明: 如果本地已经存在指定的镜像,则不会从镜像仓库拉取镜像。只有在本地不存在镜像时,才会尝试从仓库中拉取。
    使用场景:
    适用于生产环境,确保只有在本地没有镜像的情况下才会下载镜像,从而减少镜像拉取时间和带宽消耗。
    适用于明确版本标签的镜像(例如 my-app:v1.0.0),这种镜像的内容是固定的,通常不需要每次都拉取。
    指定方式: 在 Pod 配置文件中设置 imagePullPolicy: IfNotPresent。
    默认行为: 当镜像标签不是 latest 且没有指定 imagePullPolicy 时,默认使用 IfNotPresent 策略。
    例:
spec:
  containers:
  - name: my-container
    image: my-app:v1.0.0
    imagePullPolicy: IfNotPresent
  1. Never
    说明: Kubernetes 不会从镜像仓库拉取镜像,必须确保镜像已经存在于本地。如果本地不存在镜像,则会导致 Pod 启动失败。
    使用场景:
    适用于镜像已经手动预先下载到所有节点的场景。
    在高安全性或离线环境中,可能需要完全避免从镜像仓库拉取镜像。
    指定方式: 在 Pod 配置文件中设置 imagePullPolicy: Never。
    注意: 使用该策略时,如果节点上没有镜像,Pod 会报错,无法启动。
    例:
spec:
  containers:
  - name: my-container
    image: my-app:v1.0.0
    imagePullPolicy: Never

默认行为总结:
如果镜像标签为 latest,则 imagePullPolicy 默认为 Always。
如果指定了镜像标签并且不是 latest,则默认使用 IfNotPresent。
明确设置的 imagePullPolicy 将会覆盖默认行为。
使用场景总结:
Always: 当你需要每次启动容器时都拉取最新镜像,例如开发、测试或者 latest 标签场景。
IfNotPresent: 当你希望尽量使用本地已有镜像,减少拉取时间,通常适用于生产环境中的稳定版本镜像。
Never: 当你已经预先在节点上准备好镜像,并且不希望 Kubernetes 再次拉取镜像。


http://www.kler.cn/news/359891.html

相关文章:

  • 【ARM】ARM架构参考手册_Part A CPU(1)
  • 【BUG】解决已安装anaconda的pycharm中jupyter服务器中出现的import jieba失败问题
  • SpringBoot启动报错java.nio.charset.MalformedInputException: Input length =1
  • SAP揭秘者-怎么查看SAP 版本及S4 HANA的版本
  • 开启RefCell debug_refcell feature查看借用冲突位置
  • PCL 基于中值距离的点云对应关系
  • linux模拟:chrony同步时间
  • 信创:推动信息技术应用创新的国产化之路
  • react18中在列表中如何使用useCallback进行渲染优化
  • 大模型的检索增强生成综述研究
  • 利用TLP185光耦合器增强电路隔离和信号完整性
  • (AtCoder Beginner Contest 375) 题解(下)
  • 408 10——42题
  • [英语单词] sk_under_memory_pressure
  • MySQL 初阶——多版本控制 MVCC
  • Tkinter -- python GUI学习与使用
  • 1.前提配置 关防火墙 关selinux
  • 每日一题|910.最小差值II|数组排序思路、单调性
  • 深入理解Python函数
  • SAP B1 账套锁定解决方案