k8s与docker及其他中间件面试题总结
k8s与docker及其他中间件面试题总结
一、k8s
1、k8s有几种pod控制器
答:
k8s有8中pod控制器 分别为“ReplicaSet、deployment、StatefulSet、Horizontal Pod Autoscaler(HPA)、DaemonSet、Job、CronJob”
2、滚动更新和版本回退
答:
滚动更新就是杀死一部分就启动一部分在更新过程中存在两个版本Pod
版本回退就是 支持版本升级过程中的暂停、继续功能以及版本回退等诸多功能 升级过程中出现问题则回退到上一个版本
3、什么是灰度发布/蓝绿发布/金丝雀发布
答:
有一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新。
4、k8s cni cri csi 分别是什么
答:
- CNI(caclico、flannel、Weave Net):负责 Pod 的网络连接,例如为新创建的 Pod 分配 IP,并确保 Pod 之间可以通信。
- CSI(nfs ceph AWS EBS):为 Pod 提供存储资源,例如挂载持久化存储卷。
- CRI(Docker、cri-oz、container):为 Pod 提供容器运行环境,例如拉取镜像并启动容器。
5、k8s有哪些存储
答:
EmptyDir、HostPath、NFS、Pv、Pvc、StorageClass、ConfigMap、Secret
6、service有几种类型
答:
CluSterIP、Headliness、NodePort、Loadbalancer、ExternalName
二、docker
1、docker cgroup是什么
答:
cgroup
(Control Groups)是 Linux 内核的一项功能,用于限制、隔离和监控系统资源(如 CPU、内存、I/O 和网络)的使用。Docker 使用 cgroup
来实现容器的资源限制和隔离。
2、怎样查看docker的资源占用情况
- 通过telegraf、prometheus等监控插件监控
- 使用命令docker stats监控
3、dockerfile有哪些保留字指令
docker build -f /home/Dockerfile/Dockerfile -t zznn/telegraf .
Dockerfile 指令 | 说明 |
---|---|
FROM | 指定基础镜像,用于后续的指令构建。 |
MAINTAINER | 指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令) |
LABEL | 添加镜像的元数据,使用键值对的形式。 |
RUN | 在构建过程中在镜像中执行命令。 |
CMD | 指定容器创建时的默认命令。(可以被覆盖) |
ENTRYPOINT | 设置容器创建时的主要命令。(不可被覆盖) |
EXPOSE | 声明容器运行时监听的特定网络端口。 |
ENV | 在容器内部设置环境变量。 |
ADD | 将文件、目录或远程URL复制到镜像中。 |
COPY | 将文件或目录复制到镜像中。 |
VOLUME | 为容器创建挂载点或声明卷。 |
WORKDIR | 设置后续指令的工作目录。 |
USER | 指定后续指令的用户上下文。 |
ARG | 定义在构建过程中传递给构建器的变量,可使用 “docker build” 命令设置。 |
ONBUILD | 当该镜像被用作另一个构建过程的基础时,添加触发器。 |
STOPSIGNAL | 设置发送给容器以退出的系统调用信号。 |
HEALTHCHECK | 定义周期性检查容器健康状态的命令。 |
SHELL | 覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment