k8s 常见面试题

这篇具有很好参考价值的文章主要介绍了k8s 常见面试题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

k8s 常见面试题,kubernetes,容器,云原生

前段时间在这个视频中分享了 https://github.com/bregman-arie/devops-exercises 这个知识仓库。

这次继续分享里面的内容,本次主要以 k8s 相关的问题为主。

k8s 是什么,为什么企业选择使用它

k8s 是一个开源应用,给用户提供了管理、部署、扩展容器的能力,以下几个例子更容易理解:

  • 你可以将容器运行在不同的机器或节点中,并且可以将一些变化同步给这些容器,简单来说我们只需要编写 yaml 文件,告诉 k8s 我的预期是什么,其中同步变化的过程全部都交给 k8s 去完成。

其实就是我们常说的声明式 API

  • 第二个特点刚才已经提到了,它可以帮我们一键管理多个容器,同步所有的变更。

  • 可以根据当前的负载调整应用的副本数,负载高就新创建几个应用实例,低就降低几个,这个可以手动或自动完成。

什么时候使用或者不使用 k8s

  • 如果主要还是使用物理机这种低级别的基础设施的话,不太建议使用 k8s,这种情况通常是比较传统的业务,没有必要使用 k8s

  • 第二种情况是如果是小团队,或者容器规模较小时也不建议使用,除非你想使用 k8s 的滚动发布和自扩容能力,

不过这些功能运维自己写工具也能实现。

k8s 有哪些特性

  • 是自我修复,k8s 对容器有着健康检测,比如使用启动探针、存活探针等,或者是容器 OOM 后也会重启应用尝试修复。

  • 自带负载均衡,使用 service 可以将流量自动负载到后续 Pod 中,如果 Pod 提供的是 http 服务这个够用了,但如果是 grpc 这样的长链接,就需要使用 istio 这类服务网格,他可以识别出协议类型,从而做到请求级别的负载均衡。

  • Operator 自动运维能力:k8s 可以根据应用的运行情况自动调整当前集群的 Pod 数量、存储等,拿 Pulsar 举例,当流量激增后自动新增 broker,磁盘不足时自动扩容等。

  • 滚动更新能力:当我们发版或者是回滚版本的时候,k8s 会等待新的容器启动之后才会将流量切回来,同时逐步停止老的实例。

  • 水平扩展能力:可以灵活的新增或者是减少副本的数量,当然也可以自动控制。

  • 数据加密:使用 secret 可以保存一些敏感的配置或者文件。

k8s 有着哪些对象

这个就是考察我们对 k8s 是否是熟悉了,常用的有:

  • Pod

  • Service

  • ReplicationController

  • DaemonSet

  • namespace

  • ConfigMap 这个其实知道没有太多作用,主要还是得知道在不同场景如何使用不同的组件。

哪些字段是必须的

这个问题我也觉得意义不大,只要写过 yaml 就会知道了,metadata, kind, apiVersion

apiVersion: apps/v1  
kind: Deployment  
metadata:  
  labels:  
    app: app
  name: app

kubectl 是什么

其实就是一个 k8s 的 命令行客户端。

当你部署应用的时候哪些对象用的比较多

  • 第一个肯定是 deployment,这应该是最常见的部署方式。

  • service: 可以将流量负载到 Pod 中。

  • Ingress: 如果需要从集群外访问 Pod 就得需要 Ingress 然后 配合域名访问。

为什么没有 k get containers 这个命令

这个问题主要是看对 Pod 的理解,因为在 k8sPod 就是最小的单位了,如果想要访问容器可以在 Pod 中访问。

我们可以加上 -c 参数进入具体的容器。

kubectl exec -it app -c istio-proxy

你认为使用使用 k8s 的最佳实践是什么

这个主要是看日常使用时有没有遇到什么坑了:

  • 第一个就是要验证 yaml 内容是否正确,这个确实很重要,一旦执行错了后果很严重,比如使用 helm 的时候最好岂容 dry-rundebug,先看看生成的 yaml 是否是预期想要的。

helm upgrade app --dry-run --debug

  • 第二个限制资源的使用,比如 CPU 和 内存,这个也很重要,如果不设置一旦应用出现 bug 可能导致整个 k8s 集群都受到影响。

  • 为 Pod,deployment 指定标签,用于分组。

# 资源限制
resources:  
  limits:  
    cpu: 200m  
    memory: 200Mi  
  requests:  
    cpu: 100m  
    memory: 100Mi

参考来源:https://github.com/bregman-arie/devops-exercises/blob/master/topics/kubernetes/README.md#kubernetes-101

后续部分内容也有出视频版,强烈建议大家关注我的 B 站或者是视频号:

往期推荐

新手如何快速参与开源项目

从 Pulsar Client 的原理到它的监控面板

使用 ChatGPT 碰到的坑

Grafana 的奇技淫巧

在这个大环境下我是如何找工作的

k8s 常见面试题,kubernetes,容器,云原生

点分享

k8s 常见面试题,kubernetes,容器,云原生

点点赞

k8s 常见面试题,kubernetes,容器,云原生

点在看文章来源地址https://www.toymoban.com/news/detail-662234.html

到了这里,关于k8s 常见面试题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【云原生 | Kubernetes 系列】K8s 实战 如何给应用注入数据 II 将pod数据传递给容器

    【云原生 | Kubernetes 系列】K8s 实战 如何给应用注入数据 II 将pod数据传递给容器

    在上一篇文章中,我们学习了针对容器设置启动时要执行的命令和参数、定义相互依赖的环境变量、为容器设置环境变量,三种设置方式,本篇文章,我们将继续学习数据的传递。 有两种方式可以将 Pod 和 Container 字段传递给运行中的容器: 环境变量 卷文件 这两种呈现 Pod

    2024年01月25日
    浏览(257)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(22)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(49)
  • 云原生Kubernetes:K8S概述

    云原生Kubernetes:K8S概述

    目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 4.K8S网络 二、总结 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念,云原生更

    2024年02月10日
    浏览(22)
  • 【云原生 • Kubernetes】认识 k8s、k8s 架构、核心概念点介绍

    【云原生 • Kubernetes】认识 k8s、k8s 架构、核心概念点介绍

    目录 一、Kubernetes 简介 二、Kubernetes 架构 三、Kunbernetes 有哪些核心概念? 1. 集群 Cluster 2. 容器 Container 3. POD 4. 副本集 ReplicaSet 5. 服务 service 6. 发布 Deployment 7. ConfigMap/Secret 8. DaemonSet 9. 核心概念总结 Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌。谷歌早在十几

    2024年02月03日
    浏览(419)
  • 【云原生 • Kubernetes】认识 k8s 网络、外部网络访问 k8s 内部服务

    【云原生 • Kubernetes】认识 k8s 网络、外部网络访问 k8s 内部服务

    目录 一、认识 Kubernetes 网络 二、外部网络如何访问 k8s 内部服务 1. NodePort 2. Load Balancer 3. Ingress Kubernetes 最底层的网络为节点网络,用来保证 k8s 集群的节点(master 和 worker、worker 节点之间)能够做正常的 IP 寻址和通讯。 Kubernetes 第二层网络就是 Pod 网络,构建于节点网络之上

    2024年01月16日
    浏览(53)
  • 云原生Kubernetes:K8S安全机制

    云原生Kubernetes:K8S安全机制

    目录 一、理论 1.K8S安全机制 2.Authentication认证 3.Authorization授权 4.Admission Control准入控制 5.User访问案例 6.ServiceAccount访问案例 二、实验 1.Admission Control准入控制 2.User访问案例 3.ServiceAccount访问案例 三、问题 1.生成资源报错 2.镜像拉取失败 四、总结 (1)概念 Kubernetes 作为一个分

    2024年02月07日
    浏览(16)
  • 云原生Kubernetes:K8S存储卷

    云原生Kubernetes:K8S存储卷

    目录 一、理论 1.存储卷 2.emptyDir 存储卷 3.hostPath卷 4.NFS共享存储 5.PVC 和 PV 6.静态创建PV 7.动态创建PV 二、实验  1.emptyDir 存储卷 2.hostPath卷 3.NFS共享存储 4.静态创建PV 5.动态创建PV 三、问题 1.生成pod一直pending 2.shoumount -e未显示共享目录 3.静态创建pv 报错 4.使用 Deployment 来创建

    2024年02月07日
    浏览(21)
  • 云原生_kubernetes(k8s)介绍

    云原生_kubernetes(k8s)介绍

    目录 一、应用部署方式演变 二、k8s介绍 三、k8s的组件 四、k8s中的概念 五、k8s资源管理方式 1、命令式对象管理 2、命令式对象配置 3、声明式对象配置 在部署应用程序的方式上,主要经历了三个时代: 1 、物理机部署: 互联网早期,会直接将应用程序部署在物理机上 优点

    2023年04月13日
    浏览(57)
  • 【云原生K8S】Kubernetes之探针

    目录 一、探针是什么 二、探针类型  Ⅰ、livenessProbe 容器重启策略  Ⅱ、readinessProbe Ⅲ、startupProbe 执行顺序: 字段详情 三、探测机制 Ⅰ、HTTP GET探针 Ⅱ、TCP套接字探针 Ⅲ、Exec探针 探针:是由 kubelet 对容器执行的定期诊断 要执行诊断,则需kubelet 调用由容器实现的 Handler。

    2024年02月09日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包