「高频必考」Docker&K8S面试题和答案
先送福利:Go如何自动解压缩包?| 文末送书
Docker
如何在Docker容器内部访问主机上的服务?
可以通过设置主机网络模式,使用--net=host参数来访问主机上的服务。这样,容器和主机将共享一个网络命名空间,容器将可以直接访问主机上的服务。
如何在Docker容器中运行多个进程?
Docker推荐每个容器只运行一个进程。如果需要在容器中运行多个进程,可以使用supervisord等进程管理工具来管理多个进程。
如何在Docker容器中使用环境变量?
可以通过在Dockerfile中使用ENV指令定义环境变量,或者使用docker run命令的-e选项来设置环境变量。在容器内部,可以使用$ENV_NAME的方式来引用环境变量。
如何在Docker容器中共享数据?
可以使用Docker数据卷来共享数据。数据卷是一个可以被容器内外访问的特殊目录,可以在docker run命令中使用-v选项来创建和挂载数据卷。
如何在Docker容器中安装和使用ssh服务?
可以在Dockerfile中安装openssh-server,然后启动sshd服务。同时,需要在docker run命令中使用-p选项将容器内部的22端口映射到主机上的一个端口,以便可以通过ssh连接到容器。
如何在Docker容器中使用多个镜像?
可以使用Docker Compose来组合多个镜像。在Docker Compose配置文件中,可以定义多个服务,每个服务对应一个镜像,然后使用docker-compose up命令来启动多个容器。
如何在Docker容器中运行GUI应用?
可以在Dockerfile中安装图形界面相关的软件包,然后使用docker run命令的--env DISPLAY选项来设置显示环境变量,再使用--volume选项将主机上的X11套接字文件挂载到容器内部。这样,就可以在容器中运行GUI应用了。
如何在Docker容器中限制CPU和内存使用?
可以使用docker run命令的--cpu-shares和--memory选项来限制CPU和内存使用。--cpu-shares选项可以设置CPU时间片的权重,--memory选项可以设置容器能够使用的内存大小。
如何在Docker容器中设置时区?
可以在Dockerfile中安装tzdata软件包,然后使用docker run命令的-e选项设置TZ环境变量为所需时区,或者使用--volume选项将主机上的/etc/localtime文件挂载到容器内部的相应位置。
如何在Docker容器中实现容器间通信?
可以使用Docker网络来实现容器间通信。Docker提供了多种网络模式,如默认的bridge网络、host网络、overlay网络等。可以使用docker network命令来创建和管理网络,并使用--network选项指定容器所属的网络。在同一个网络中的容器可以直接通过容器名或IP地址相互访问。
kubernetes
什么是Kubernetes?
Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个可扩展的、高可用的集群,并包含了自动化部署、负载平衡、存储管理、自我修复、自动扩容等功能。
Kubernetes中的Pod是什么?
Pod是Kubernetes中最小的部署单元,它包含一个或多个紧密耦合的容器和共享的存储/网络资源。Pod提供了一种抽象层,使得容器可以在同一个主机上共享文件系统、网络命名空间等资源。
Kubernetes中的ReplicaSet是什么?
ReplicaSet是一个用于管理Pod副本数量的控制器。它可以根据用户定义的副本数量,自动调整Pod的数量,以保证应用程序的高可用性。
Kubernetes中的Service是什么?
Service是Kubernetes中一个抽象的逻辑概念,用于暴露Pod的网络服务。Service可以将Pod的IP地址和端口映射到一个虚拟的IP地址和端口上,从而实现了Pod的负载均衡和服务发现功能。
Kubernetes中的Deployment是什么?
Deployment是一个用于管理Pod部署的控制器。它可以自动创建和更新Pod,以便保持应用程序的可用性和可伸缩性。
Kubernetes中的ConfigMap和Secret是什么?
ConfigMap是一个用于存储应用程序配置信息的对象,可以通过环境变量、命令行参数等方式使用。Secret是一个用于存储敏感信息(如密码、密钥等)的对象,可以加密存储。
Kubernetes中的DaemonSet是什么?
DaemonSet是一个用于在每个节点上运行一个Pod的控制器。它可以用于运行一些需要在每个节点上运行的系统级别的服务,如日志收集、监控等。
Kubernetes中的StatefulSet是什么?
StatefulSet是一个用于管理有状态应用程序的控制器。它可以保证Pod的唯一性和有序性,从而实现有状态应用程序的可靠性。
Kubernetes中的HorizontalPodAutoscaler是什么?
HorizontalPodAutoscaler是一个用于自动扩展Pod数量的控制器。它可以根据应用程序的负载情况,自动调整Pod数量,以保证应用程序的性能和可用性。
Kubernetes中的CSI是什么?
CSI(Container Storage Interface)是一个用于存储管理的标准接口,它可以让存储提供商为Kubernetes提供自定义的存储解决方案。CSI可以让Kubernetes与不同的存储提供商进行集成,从而实现高度可定制化的存储管理。
「高频必考」Docker&K8S面试题和答案的更多相关文章
- 【JVM故障问题排查心得】「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?
背景介绍 最近的docker容器经常被kill掉,k8s中该节点的pod也被驱赶. 我有一个在主机中运行的Docker容器(也有在同一主机中运行的其他容器).该Docker容器中的应用程序将会计算数据 ...
- 「新手必看」Python+Opencv实现摄像头调用RGB图像并转换成HSV模型
在ROS机器人的应用开发中,调用摄像头进行机器视觉处理是比较常见的方法,现在把利用opencv和python语言实现摄像头调用并转换成HSV模型的方法分享出来,希望能对学习ROS机器人的新手们一点帮助 ...
- Java必考题目之JVM面试题目和答案
JVM内存模型 首先我们来了解一下JVM的内存模型的怎么样的: 1.堆:存放对象实例,几乎所有的对象实例都在这里分配内存 堆得内存由-Xms指定,默认是物理内存的1/64:最大的内存由-Xmx指定,默 ...
- 2019年,Python工程师必考的6个面试题,Python面试题No5
第1题:Python里面如何实现tuple和list的转换? 函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tuple, 元素不变,排序也不变 list转为tuple: ...
- [LOJ#6002]「网络流 24 题」最小路径覆盖
[LOJ#6002]「网络流 24 题」最小路径覆盖 试题描述 给定有向图 G=(V,E).设 P 是 G 的一个简单路(顶点不相交)的集合.如果 V 中每个顶点恰好在 P 的一条路上,则称 P 是 ...
- 报名|「OneAPM x DaoCloud」技术公开课:Docker性能监控!
如今,越来越多的公司开始 Docker 了,「三分之二的公司在尝试了 Docker 后最终使用了它」,也就是说 Docker 的转化率达到了 67%,同时转化时长也控制在 60 天内. 既然 Dock ...
- docker并不能把部署的工作「减少为0」,比较好的情况下是「基本减少为1」
很多人说docker改变了运维世界,这句话是从群体角度来说的,是统计学意义上的改变,像mysql,python这样被大规模使用的基础应用,docker化之后为整个群体所节省的时间是非常巨大的. 有人可 ...
- 整理的最全 python常见面试题(基本必考)
整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...
- UICollectionViewCell「居左显示」
UICollectionViewCell「居左显示」 准备: 1.UICollectionView Left Aligned Layout 一款UICollectionView居左显示的约束点击下载_ ...
- [LOJ#2326]「清华集训 2017」简单数据结构
[LOJ#2326]「清华集训 2017」简单数据结构 试题描述 参加完IOI2018之后就是姚班面试.而你,由于讨厌物理.并且想成为乔布斯一样的创业家,被成功踢回贵系. 转眼,时间的指针被指向201 ...
随机推荐
- 【Linux】Ubuntu随笔
Ubuntu声明环境变量时使用 export JAVA_HOME=/xx/xx/xx,当需要引用时要写成 $JAVA_HOME 所以配置环境变量并声明方法如下: vim ~/.bashrc expor ...
- 【编程】Python3 使用自定义编码字符表解密Base64数据
前言 Python提供了"base64"模块用于编码.解码Base64数据.但是并不是所有的Base64数据都会使用默认的字符表进行编码,所以这里对Python下实现自定义编码字符 ...
- java pta第二次阶段性总结
一.前言 经过这三次的pta训练,我对java再一次有了一个新的认识,这三次比起之前难度更大,所涉及的知识点更多.第4.5次作业是在前几次作业上的再次拓展,由三角形拓展到四边形,再由四边形拓展到五边形 ...
- Unity C#代码入门
Unity C#代码入门 1. 脚本基本结构 1.1 unity生成的模板 using System.Collections; using System.Collections.Generic; us ...
- Oracle学习-----基本SQL select语句
一.基本select语句 SELECT 标识 选择那些列 FROM 标识从哪个表中选择 select * 标识 全部选择 select department_id, location_id ...
- 基于airtest验证Android端app是否安装及自动化安装
1.检测app是否安装: 使用check_app方法检测是否安装:为什么需要在封装一层做断言呢?主要check_app方法安装成功会返回True,但是未检测到安装时直接报异常了,停止执行.无法直接 ...
- python发布定时任务(schedule模块)
最近公司开始让在自己开发的软件上写日志,有几次下班了都忘了写,好几次都是给领导发邮件,说明一下自己没有写日志这件事,很麻烦.但是我一想我每天都要写,岂不是很麻烦,想想自己之前有爬虫经验,为什么自己不写 ...
- hdu: 改革春风吹满地(叉乘求面积)
Problem Description" 改革春风吹满地,不会AC没关系;实在不行回老家,还有一亩三分地.谢谢!(乐队奏乐)" 话说部分学生心态极好,每天就知道游戏,这次考试如此简 ...
- 07.异常、多线程、Lambda 表达式
一.异常 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 异常体系 根类 java.lang.Throwable 两个直接子类 java.lang.Error 严重错误Er ...
- awk command
https://www.cnblogs.com/bluevitality/p/6691041.html