面试题总结

1、CentoS系统里更改IP时,网卡配置文件的路径?

在CentoS系统中,更改IP地址时,
网卡配置文件的路径为:/etc/sysconfig/network-scripts/ifcfg-ens33。
使用vim命令(vi命令也可以)对文件进行配置,
需要修改BOOTPROTO="static"也就是将dhcp改为static,
修改ONBOOT="yes" 
意思是将网卡设置 为开机启用,同时添加 IPADDR、GATEWAY、NETMASK、DNS1、DNS2 等信息。

2、你通常用哪些命令及参数查看系统都开启了哪些端口?

  输入该命令: netstat -tlnp

在这里插入图片描述
3、docker 中查看镜像列表的命令是什么? docker 查看所有容器的命令是什么?docker有几种状态?

docker 中查看镜像列表的命令:docker images
ocker 查看所有容器的命令:docker ps -a

docker容器4种状态:运行+已暂停+重新启动+已退出

4、简述docker 容器的启动流程

Docker容器的启动流程可以分为以下几个步骤:
创建Docker镜像:首先需要从Docker仓库中下载或创建所需的Docker镜像。
创建Docker容器:使用Docker命令创建Docker容器,指定容器名称、镜像名称、容器运行参数等。
分配IP地址:Docker容器启动后,会自动分配一个IP地址给容器。
加载entrypoint:如果Docker镜像中定义了entrypoint,则Docker容器启动时会加载entrypoint指定的脚本或命令。
执行启动脚本:如果Docker镜像中定义了启动脚本,则Docker容器启动时会执行启动脚本。
容器启动成功:Docker容器启动成功后,可以在宿主机上访问该容器内的服务。

5、Docker Compose 可以使用 JSON 代替YAML 吗?

可以对Docker Compose文件使用 JSON 文件而不是YAML

6、简单概述一下 docker 镜像分层存(组合文件)的原理

Docker 镜像分层存储的原理是采用了一种叫做 Union File System 的技术,也就是联合文件系统。这种技术允许将多个文件系统(或者说多个镜像)挂载到同一个目录下,形成一个虚拟的文件系统,使得这些文件系统的内容在用户看来就像是一个整体一样。

Docker 镜像是由多个层组成的,每个层都是一个只读文件系统。当我们创建一个新的镜像时,会在已有的镜像基础上进行修改,新增一个新的只读层,这个新层就包含了我们所做的修改。当我们启动一个容器时,Docker 会将所有的只读层组合成一个虚拟的文件系统,这个文件系统称为容器的文件系统。在这个文件系统中,每个只读层都是不可修改的,只有最上层的可读写层可以被修改。

这种分层存储的方式有以下几个好处:

节省存储空间:由于每个镜像都只保存了它自己的修改层,因此同样的文件只需要存储一次就可以被多个镜像共享,这样就可以节省存储空间。

加速镜像构建:由于每个层都是只读的,因此在构建新的镜像时,可以复用已有的层,只需要在最上面新增一个新的只读层就可以了,这样就可以大大加速镜像构建的速度。

方便管理镜像:由于每个层都是只读的,因此可以方便的管理每个层,比如删除、下载、推送等操作都可以针对每个层进行

7、一个数据库表 表名为“A”,有 2个字段,分别是 name(姓名)、age(年龄)
查询年龄在60及以上的人,写出完整语句表达式?

SELECT name  
FROM A  
WHERE age >= 60;

8、2块 500G的硬盘做 RAID 0后的空间大概是多少?

将两块500G的硬盘做RAID 0后,
它们的空间将被组合在一起,形成一个单一的逻辑卷。
由于RAID 0采用条带化的方式将数据分布在多个硬盘上,
因此可以提高磁盘系统的性能,
但是不提供任何数据冗余保护。
因此,2500G的硬盘做RAID 0后的总空间将是1000GB(即1TB)。

9、2 块 500G的硬盘做 RAID 1 后的空间大概是多少?

将两块500G的硬盘做RAID 1后,
数据将被完全复制到两个硬盘中,
因此数据会有冗余保护,但磁盘空间将会浪费一部分用于备份数据。
因此,2500G的硬盘做RAID 1后的总空间将是500GB(即1个硬盘的容量)。

10、RAID5 至少几块硬盘?

raid5需要至少3块硬盘,RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据;当读取写入的数据的时候会分别从3块硬盘上读取数据内容,再通过检验信息进行校验。

11、简答 K8S 是什么?

kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

说简答点:k8s就是一个编排容器的工具,一个可以管理应用全生命周期的工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈。

例如:一个服务器挂了,K8s可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。

所以 k8s 一般都是和 Docker 搭配起来使用的。

12、简单说一下while语句?死循环

while循环是一种常见的编程控制结构,它会在条件为真的情况下重复执行一段代码块。如果条件一直为真,那么while循环就会变成死循环,即无限循环,除非有外部干预或条件改变来打破循环。为了避免死循环,我们应该确保在循环体内部能够改变条件,从而使循环在一定条件下终止。

13、简单说一下if语句?

if语句是指编程语言(包括c语言、C++、C#、java、VB、汇编语言等)中用来判定所给定的条件是否满足,
根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假,可以用bool型变量进行存储,占用一字节。

14、问题:K8S 如何查看所有 pod?

kubectl get pod

15、K8S 如何查看某个命名空间下所有 pod?

kubectl get pod --namespace=[NAMESPACE][NAMESPACE] 替换为您要查看的命名空间名称即可。
这个命令会返回该命名空间下所有 Pod 的信息

例如:
在这里插入图片描述
16、K8S 如何查看 pod 日志?

可以使用 kubectl logs 命令来查看 Pod 的日志。
这个命令可以指定要查看的 Pod 名称或类型,以及要查看的容器名称。
例如,要查看名为 mypod 的 Pod 的日志,您可以执行以下命令:
kubectl logs mypod
如果要查看特定容器的日志,可以在命令中指定容器名称。
例如,要查看名为 mycontainer 的容器的日志,您可以执行以下命令:
kubectl logs mypod mycontainer
如果您想实时查看日志,可以使用 -f 参数来启用实时日志输出:
kubectl logs -f mypod mycontainer
这将实时输出 mypod 中 mycontainer 容器的日志。

17、K8S 如何重新加载 pod?

在 Kubernetes 中,Pod 可以被重新创建或删除。当一个 Pod 被删除时,它的容器会停止运行,并且相关的资源也会被释放。
如果需要重新加载这个 Pod,可以使用以下方法:

使用 kubectl delete pod 命令删除当前的 Pod,然后使用 kubectl apply -f podfile.yaml 命令重新创建它。
其中,podfile.yaml 是 Pod 的配置文件,包含了新的容器镜像、容器端口等信息。

如果不想删除现有的 Pod,
可以使用 kubectl rollout restart deployment/<deployment-name> 命令重启该Deployment的副本集。
其中,deployment-name 是该 Deployment 的名称。这将导致所有副本集中的 Pod 都被重新启动,从而达到重新加载的效果。

如果需要重新加载某个容器的镜像,可以在 Pod 的配置文件中修改该容器的镜像名称和版本号。然后使用 kubectl apply -f podfile.yaml 命令重新创建 Pod。

如果需要重新加载某个容器的环境变量或挂载卷,可以修改 Pod 的配置文件中的相应字段。然后使用 kubectl apply -f podfile.yaml 命令重新创建 Pod

18、如何解压 tar 文件到指定目录?举例写出解压 abc.tar 文件到指定目录:/home/app

tar -xvf abc.tar -C /home/app

    
其中,参数解释如下:
tar: 解压 tar 文件的命令。
-x: 表示解压操作。
-v: 显示详细信息,方便查看解压进度。
-f: 指定要解压的 tar 文件名。
-C: 指定解压后输出到哪个目录。
将上述命令中的 abc.tar 替换为实际的 tar 文件名,将 /home/app 替换为实际的目录路径即可。

19、如何解压 zip 文件到指定目录?举例写出解压 abc.zip 文件到指定目录:/home/app

可以使用以下命令来解压 zip 文件到指定目录:        

unzip abc.zip -d /home/app   

其中,参数解释如下:
unzip: 解压 zip 文件的命令。
abc.zip: 指定要解压的 zip 文件名。
-d: 指定解压后输出到哪个目录。
将上述命令中的 abc.zip 替换为实际的 zip 文件名,将 /home/app 替换为实际的目录路径即可。

20、如何使用7z 压缩文件?举例写出压缩/home 目录下所有文件

7z a archive.7z /home/*

    
其中,参数解释如下:

7z: 压缩文件的命令。
a: 表示添加文件到压缩文件中。
archive.7z: 压缩后生成的文件名。
/home/*: 压缩/home目录下的所有文件和子目录。
将上述命令中的 archive.7z 替换为实际的压缩文件名,将 /home/* 替换为实际要压缩的目录路径即可。

21、如何使用 7z解压缩文件?举例写出解压 abc.7z 文件到指定目录:/home/app

7z x archive.7z -o/home/app/extracted_folder/

    
其中,参数解释如下:

7z: 解压文件的命令。
x: 表示从压缩文件中提取文件。
archive.7z: 要解压的压缩文件名。
-o: 指定输出目录。
/home/app/extracted_folder/: 指定输出目录的路径。
将上述命令中的 archive.7z 替换为实际要解压的压缩文件名,将 /home/app/extracted_folder/ 替换为实际要解压到的目录路径即可。

22、如何查看 MD5?

有几种方法可以查看 MD5:
点击选择文件,右击鼠标,选择"属性"。
点击文件校验。
在 MD5 后面就可以看到文件的 MD5 码。

23、MD5 是做什么用的?

MD5是一种哈希算法,主要用于确保信息在传输或存储过程中不被篡改。
通过对文件或数据进行加密转换,生成一个128位的特征码,即MD5值,
可以用来唯一地代表原信息的特征。
MD5广泛应用于密码管理、电子签名、文件完整性验证等领域。

24、Linux下查找最大文件的 方法

第一种:ls


如,列出 /home 目录中的 5 个最大文件,可以:

ls -lSh /home | head -5

第二种:find

如,查找 / 目录下最大的一个文件:

sudo find / -type f -printf “%s\t%p\n” | sort -n | tail -1 

如果要找前 10 个大文件呢,可以这样:
$ find $HOME -type f -printf ‘%s %p\n’ | sort -nr | head -10 
也可以使用 -size 选项来查找,以下命令将显示大于100MiB(注意不是100MB,MiB和MB的区别,emmm)的所有文件:

find / -size +100M -ls
也可以查找一个区间大小的(比如 100MiB 和 200MiB )之间的文件:

find / -size +100M -size -200M -ls
最后,下面这个命令也比较常用,查找某个目录最大的5个文件:

find $DIRECTORY -type f -exec ls -s {} \; | sort -n | tail -n 5
补充一点,find 也可以查找最近的文件:少于或等于n天(-ctime -n)的文件或属于特定用户(-user mrlinus)的文件。

第三种:du
du 命令可以查看磁盘空间的使用情况,自然也可以用来查看磁盘上占用空间较多的文件和文件夹。

比如,查找 /home 下前 20 个最大的文件:

sudo du -a /home | sort -n -r | head -n 20

查找当前文件夹中最大的 10 个目录:
sudo du -a | sort -n -r | head -n 10

如果要显示可读的KB、MB、GB信息,可以加上 -h 参数:
du -hs * | sort -rh | head -n 10 
查找最大目录/文件(包括子文件夹):

du -Sh | sort -rh | head -n 10 
如果只看大小在 GB 范围内的所有文件,可以同时使用 du 命令和 grep 命令:

du -h -a /dir | grep “[0-9]G\b”

25、如何使用nginx 配置负载均衡,进行举例说明

要使用nginx进行负载均衡配置,需要进行以下步骤:

步骤1:安装Nginx
首先,您需要在服务器上安装Nginx。如果您已经安装了Nginx,请跳过此步骤。以下是在Ubuntu中安装Nginx的命令:

sudo apt-get update
sudo apt-get install nginx
步骤2:创建一个upstream
接下来,我们需要配置Nginx来使用upstream模块。upstream模块用于定义一组后端服务器,以便Nginx可以将请求分发到这些服务器中的任何一个。假设我们有两个Web服务器可用(192.168.1.10192.168.1.11),请按如下所示创建一个名为“myapp”的upstream:

http {
  upstream myapp {
    server 192.168.1.10;
    server 192.168.1.11;
  }
}
步骤3:配置HTTP服务器
接下来,我们需要配置HTTP服务器,以使其使用刚才定义的upstream。以下是一个最简单的HTTP服务器配置,其中包括使用myapp upstream的proxy_pass指令:

http {
  upstream myapp {
    server 192.168.1.10;
    server 192.168.1.11;
  }

  server {
    listen 80;

    location / {
      proxy_pass http://myapp;
    }
  }
}
步骤4:测试负载均衡
最后,我们需要测试负载均衡是否按预期工作。一种简单的方法是使用ApacheBench(ab)工具进行基准测试。以下是一个使用ab进行基准测试的示例命令:

ab -n 1000 -c 10 http://localhost/
在此示例中,ab将向http://localhost/发送1000个请求,并且每个并发连接数为10。如果您有两个相同的Web服务器可用,您应该看到它们各自处理大约500个请求。

这就是使用Nginx进行负载均衡的基本步骤。当然,您可以对上述配置进行更多高级设置和调整,以满足特定的需求和条件。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值