云计算、Docker、K8S问题

1 云计算

云计算作为一种新兴技术,已经在现代社会中得到了广泛应用。它以其高效、灵活和可扩展特性,成为了许多企业和组织在数据处理和存储方面的首选方案。

1.1 什么是云计算?它有哪些特点?

云计算是一种通过网络提供计算资源和服务的技术。它的特点包括可扩展性、虚拟化、自动服务、按需付费和灵活性等。云计算可以根据用户的需求提供弹性的计算资源,并且用户无需担心硬件和软件的管理问题。

1.2 请解释一下云计算中的公有云和私有云

公有云是指由第三方服务提供商管理和维护的云计算平台,该平台向不同的用户提供计算资源和服务。私有云是指由企业或组织自行搭建和管理的云计算平台,该平台主要为企业内部员工提供服务。

1.3 云计算的IaaS、PaaS、SaaS分别是什么?

  • IaaS(基础设施即服务)是云计算提供的最底层的服务模式,它为用户提供了虚拟的计算资源和网络基础设施;
  • PaaS(平台即服务)是建立在IaaS之上的服务模式,它提供了更高层次的服务,包括开发环境、数据库和中间件等;
  • SaaS(软件即服务)是最顶层的服务模式,它提供了完整的软件应用,用户可以通过云平台直接使用这些应用而无需进行复杂的安装和配置。

1.4 请简要介绍一下云计算的虚拟化技术

虚拟化技术是云计算中的关键技术之一,它将硬件资源进行抽象和隔离,使得多个虚拟的计算实例可以运行在同一台物理机上。通过虚拟化技术,用户可以更加灵活地调配和管理计算资源,提高硬件利用率和系统的可靠性。

1.5 请描述一下云计算中的高可用性和容灾的概念

云计算中的高可用性是指系统能够保持长时间的连续运行,即使遇到一次性的故障也能快速恢复。容灾则指系统在遭受灾难性故障后能够安全地备份和恢复数据以及业务,确保在灾难发生后能够迅速恢复正常运营。

1.6 请说明云计算对企业的益处

云计算可以帮助企业降低IT成本,增加IT资源的利用效率,并提高生产力。他们提供弹性的计算资源,并且按需付费,使得企业可以根据实际需求来购买和使用计算资源,避免了浪费和过度投资。此外,云计算还可以提供更高的可靠性和安全性,通过数据备份和容灾措施,确保企业的业务不会受到意外事件的影响。

1.7 请提及几个常见的云计算平台

常见的云计算平台包括Amazon Web Service(AWS)、Microsoft Azure、Google Cloud Platform(GCP)和阿里云等。这些平台提供了广泛的云计算服务和解决方案,可以满足不同类型企业的需求。

云计算已经从物理机到虚拟机,再从虚拟机到容器,提到当前最新的容器化技术就不得不提Docker和Kubernetes技术了。
在这里插入图片描述

2 Docker

Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,模块各司其职。下图是它的总体架构图:
在这里插入图片描述

  1. 用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。
  2. Docker Daemon 作为 Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受Docker Client 的请求。
  3. Docker Engine 执行 Docker 内部的一系列工作,每一项工作都是以一个 Job 的形式的存在。
  4. Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动 Graphdriver将下载镜像以 Graph 的形式存储。
  5. 当需要为 Docker 创建网络环境时,通过网络管理驱动 Networkdriver 创建并配置 Docker容器网络环境。
  6. 当需要限制 Docker 容器运行资源或执行用户指令等操作时,则通过 Execdriver 来完成。
  7. Libcontainer 是一项独立的容器管理包,Networkdriver 以及 Execdriver 都是通过Libcontainer 来实现具体对容器进行的操作。

2.1 什么是Docker?

Docker是一个开源的容器化平台,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,从而在任何Docker运行的环境中实现一致的运行。

2.2 Docker容器和虚拟机的区别是什么?

Docker容器在操作系统级别进行虚拟化,共享宿主机的内核,而虚拟机在硬件级别进行虚拟化,拥有独立的内核。容器通常更轻量级、启动更快,资源占用更少。

2.3 什么是Docker镜像?

Docker镜像是一个轻量级、只读的模板,用于创建Docker容器。它包含运行容器所需的代码、库、环境变量和配置文件。

2.4 如何创建Docker容器?

可以使用docker run命令来从镜像创建容器。例如,docker run -d -p 80:80 nginx会基于nginx镜像启动一个新的容器,并将容器的80端口映射到宿主机的80端口。

2.5 Docker Hub是什么?

Docker Hub是一个公共的容器镜像仓库,可以用来存放、分享和管理Docker镜像。用户可以从Docker Hub下载公共镜像或上传自己的私有镜像。

2.6 Docker的默认网络模式有哪些?

Docker的默认网络模式包括bridge、none、host和container。每种模式提供不同级别的网络隔离和互连。

  1. bridge(桥接)模式:这是Docker的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥。容器通过这个虚拟网桥进行通信,可以互相访问。这种模式的好处是网络性能比host模式的好。
  2. host(主机)模式:在这种模式下,Docker容器将共享主机的网络命名空间,这意味着容器将直接使用主机的网络栈,而不需要进行任何网络配置。容器可以访问主机的网络服务,如DNS和HTTP/HTTPS等。但是,由于容器和主机共享网络命名空间,因此可能会对主机的网络稳定性造成影响。
  3. none(无网络)模式:在这种模式下,Docker容器没有自己的网络命名空间,也没有自己的IP地址。这种模式通常用于需要自定义网络配置的场景,例如使用自定义bridge或overlay网络等。
  4. container(容器)模式:在这种模式下,Docker容器将使用另一个已存在的容器的网络命名空间,这意味着容器将共享同一个网络命名空间。这种模式通常用于需要将多个相关的容器组织在一起的场景,例如使用DockerCompose进行容器编排等。

2.7 如何创建Docker网络?

使用docker network create命令可以创建Docker网络。例如,docker network create --driver bridge my_bridge_network创建了一个bridge类型的网络。

2.8 Docker容器间通信是如何工作的?

容器可以通过Docker网络进行通信。在同一网络中的容器可以使用容器名称互相解析,实现容器间通信。

2.9 什么是Docker Compose?

Docker Compose是一个工具,用于定义和运行多容器Docker应用程序。

2.10 如何启动使用Docker Compose定义的服务?

使用docker-compose up命令。

2.11 怎样在Docker Compose中设置环境变量?

可以在docker-compose.yml文件中使用environment键设置环境变量。

2.12 Docker Swarm是什么?

Docker Swarm是Docker的原生集群管理工具,用于在多个主机上部署和管理Docker容器。

2.13 Docker Swarm和Kubernetes的主要区别是什么?

Kubernetes提供了更多的功能和灵活性,适用于更复杂的应用场景。Docker Swarm更简单,易于设置和管理。

2.14 如何保证Docker容器的安全性?

保持Docker和宿主机系统的更新,使用非root用户运行容器,限制容器的资源使用,使用Docker安全扫描等。

2.15 Docker中的健康检查是如何工作的?

可以在Dockerfile中定义HEALTHCHECK指令或在docker-compose.yml中定义healthcheck来检查容器的健康状态。

2.16 Docker是如何实现容器隔离的?

Docker使用Linux的命名空间和控制组(cgroups)来实现容器的隔离。

2.17 解释Docker容器的重启策略。

Docker容器的重启策略决定了在退出时容器是否和如何重启。常用策略包括no、always、on-failure和unless-stopped。

3 K8S

K8s将集群中的机器划分为一个主节点和一群工作节点,在主节点上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager 和 kube-scheduler,这些进程实现了整个集群的资源管理、pod 调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且都是全自动完成的。集群中的工作节点运行真正的应用程序,各自又通过若干组件的组合来实现。在节点上,K8s管理的最小运行单元是pod。负载均衡模式需要通过kubelet、kube-proxy等这些服务进程实现,下图是K8s的整体架构:
在这里插入图片描述
主节点即中央控制节点是K8s 集群的管理节点,管理集群当中数据的接口、状态监测和回滚、状态更新、调度等功能,kubectl是K8s的命令行工具集,用于通过命令行与API server进行交互,而对K8s进行操作,实现在集群中进行各种资源的管理控制等操作,通过节点控制器来与工作节点交互。

3.1 为什么需要 Kubernetes,它能做什么?

Kubernetes是一个开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它的主要目标是简化容器化应用的部署和管理,并提供弹性、可靠的应用程序编排。

  • 服务发现和负载均衡:Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
  • 存储编排:Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。
  • 自动部署和回滚:可以使用 Kubernetes 描述已部署容器的所需状态, 它可以以受控的速率将实际状态更改为期望状态。 例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。
  • 自动完成装箱计算:为 Kubernetes 提供许多节点组成的集群,在这个集群上运行容器化的任务。 你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。 Kubernetes 可以将这些容器按实际情况调度到你的节点上,以最佳方式利用你的资源。
  • 自我修复:Kubernetes 将重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器, 并且在准备好服务之前不将其通告给客户端。
  • 密钥与配置管理:Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 SSH 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。
  • 批处理执行:除了服务外,Kubernetes 还可以管理你的批处理和 CI(持续集成)工作负载,如有需要,可以替换失败的容器。
  • 水平扩缩:使用简单的命令、用户界面或根据 CPU 使用率自动对你的应用进行扩缩。
  • IPv4/IPv6 双栈 :为 Pod(容器组)和 Service(服务)分配 IPv4 和 IPv6 地址。
  • 为可扩展性设计 :在不改变上游源代码的情况下为你的 Kubernetes 集群添加功能。

3.2 什么是Pod?

Pod是Kubernetes的最小调度和部署单元。它是一个包含一个或多个容器的逻辑主机,这些容器共享网络和存储资源,并且在同一主机上共享生命周期。

3.3 什么是命名空间(Namespace)?

命名空间是一种在Kubernetes集群中创建多个虚拟集群的机制。它可以用于隔离和管理不同的应用程序、团队或环境。

3.4 如何进行应用程序的水平扩展?

可以使用Deployment的副本数字段来进行水平扩展。通过增加副本数,Kubernetes会创建更多的Pod副本以应对负载增加。

3.5 什么是Ingress?

Ingress是Kubernetes的资源之一,用于将外部流量路由到集群内的服务。它可以提供负载均衡、SSL终止、路径基于的路由等功能。

3.6 如何监控Kubernetes集群?

可以使用Kubernetes内置的指标和日志系统,如kube-state-metrics、Heapster和EFK堆栈,来监控集群的运行状态和性能。

3.7 什么是Kubernetes的生命周期钩子(Lifecycle Hook)?

生命周期钩子是Pod中的回调函数,可以在容器的生命周期事件发生时触发。它们可以用于在容器启动、停止或失败时执行定制化操作。

3.8 什么是Pod的探针(Probe)?

Pod的探针用于定期检查容器的健康状态。Kubernetes支持三种类型的探针:存活探针(Liveness Probe)、就绪探针(Readiness Probe)和启动探针(Startup Probe)。

3.9 请解释一下 Kubernetes 的主要组件。

Kubernetes的主要组件包括:Master组件(API Server、Controller Manager、Scheduler)和Node组件(kubelet、kube-proxy、容器运行时)。

3.10 怎样在 Kubernetes 中进行服务发现?

可以使用Kubernetes的Service对象来进行服务发现。Pod可以通过Service的DNS名称进行通信。

返回面试宝典

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/667544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型软件编程实例分享,诊所门诊处方笺管理系统多台电脑同时使用的软件教程

大型软件编程实例分享,诊所门诊处方笺管理系统多台电脑同时使用的软件教程 一、前言 以下教程以 佳易王诊所门诊电子处方管理系统V17.2 为例说明 软件资源可以点击最下方官网卡片了解详情 软件左侧为导航栏 1、系统参数设置:可以设置打印等参数 2、…

【数据分享】1929-2023年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 之前我们分享过1929-2023年全球气象站点的逐年平均气温数据、逐年最高气温数据…

Debian系统显示中文

开发板上的debian默认不显示中文。 安装字体 sudo apt install fonts-wqy-zenhei 安装locals sudo apt install locales (无必要)设置/etc/locale.gen、设置/etc/locale.conf 运行dpkg-reconfigure locales dpkg-reconfigure locales 可以选择UT…

Sqli靶场23-->30

不知不觉鸽了几天了,没办法去旅游摸鱼是这样的了,抓紧时间来小更一下 23.过滤注释符号 先手工注入一下,就能发现两个单引号不报错,但是一旦上到注释符号的话就会报错,可以猜测出是对注释符号进行了过滤,我…

【Crypto | CTF】BUUCTF 萌萌哒的八戒

天命:这年头连猪都有密码,真是奇葩,怪不得我一点头绪都没有 拿到软件,发现是.zip的压缩包,打不开,改成7z后缀名,打开了 发现是一张图片 也只有下面这行东西是感觉是密码了,又不可能…

前端面试题——Vue的双向绑定

前言 双向绑定机制是Vue中最重要的机制之一,甚至可以说是Vue框架的根基,它将数据与视图模板相分离,使得数据处理和页面渲染更为高效,同时它也是前端面试题中的常客,接下来让我们来了解什么是双向绑定以及其实现原理。…

eslint报错文档大量红色报错符号 不自动修正

确保eslint在工作 控制台大量报错信息 确保setting.json 开了保存的时候自动格式化代码 这个时候保存的时候代码可以自动被格式化 但是 文档中和控制台中仍然有大量的报错 信息 此时此刻说明 格式化文档的文件不是按照eslint 格式化的 可以网上找找现成可用的setting.json抄…

一站式SpringBoot学习平台:让编程变得轻松有趣!

介绍:Spring Boot是一个开源的Java框架,旨在简化Spring应用程序的开发和部署过程。 Spring Boot由Pivotal团队设计并推出,它的核心优势在于极大地简化了传统Spring应用的初始搭建和开发流程。具体来说,Spring Boot的主要特点包括&…

Bard 最新更新:全球开放访问Gemini Pro并生成图片

深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/ 。 今…

【讲座分享】| 复旦大学张奇教授——《自然语言发表论文如何打怪升级?NLP顶会论文发表》

文章目录 1 基础关1.1 基础书籍1.2 提高书籍1.3 课程链接1.4 编程实战 2 阅读关2.1 分层过滤2.2 集团作战,信息获取2.3 论文如何泛读 3 动机 方向关3.1 快速发论文3.2 好的研究 4 写作关4.1 论文写作流程4.2 从读者角度出发4.3 每一部分怎么写4.3.1 Abstract摘要4.3…

Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)

原文:Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 译者:飞龙 协议:CC BY-NC-SA 4.0 第十八章:强化学习 强化学习(RL)是当今最激动人心的机器学习领域之一,也是最古老…

跟着pink老师前端入门教程-day18

3、CSS3 3D转换 生活中的环境是3D的,照片就是3D物体在2D平面呈现的例子 特点:近大远小,物体后面遮挡不可见 3.1 三维坐标系 三维坐标系其实就是指立体空间,立体空间是由3个轴共同组成的 x轴:水平向右 注意&#x…

SpringBoot 使用定时任务(SpringTask)

Spring3.0以后自带的task&#xff0c;可以将它看成一个轻量级的Quartz&#xff0c;而且使用起来比Quartz简单许多。 使用步骤&#xff1a; 1.导入坐标 在spring-boot-starter-web坐标中&#xff0c;就包含了SpringTask&#xff0c;所以一般的Web项目都包含了。 <depende…

基于动作合成视频、线免费使用不需要注册,支持多种视频任务:图像生成视频、文本生成视频、视频修改、视频风格化、用Transformer构建世界模型

基于动作合成视频、线免费使用不需要注册&#xff0c;支持多种视频任务&#xff1a;图像生成视频、文本生成视频、视频修改、视频风格化、用Transformer构建世界模型。 WorldDreamer无缝逐帧AI模型: 基于Transformer生成高质量电影级别视频的通用世界模型"。从20亿数据中…

问题:胚珠裸露于心皮上,无真正的果实的植物为() #经验分享#媒体

问题&#xff1a;胚珠裸露于心皮上&#xff0c;无真正的果实的植物为&#xff08;&#xff09; A.双子叶植物 B.被子植物 C.单子叶植物 D.裸子植物 参考答案如图所示

【节选】Go语言的100个错误使用场景|数据类型

Data types &#x1f31f; 章节概述&#xff1a; 基本类型涉及的常见错误 掌握 slice 和 map 的基本概念&#xff0c;避免使用时产生 bug 值的比较 低效的切片初始化&#xff08;#21&#xff09; 实现一个 conver 方法&#xff0c;将一个切片 Foo 转换成另一个类型的切片 Ba…

基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/n…

【MATLAB源码-第136期】基于matlab的变色龙群优化算法CSA)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 变色龙群优化算法&#xff08;Chameleon Swarm Algorithm&#xff0c;CSA&#xff09;是一种新颖的群体智能优化算法&#xff0c;受到自然界中变色龙捕食和社交行为的启发。变色龙以其独特的适应能力而著称&#xff0c;能够根…

前缀和与差分

前缀和 S [ i ] Σ i j 1 A [ j ] S [ i − 1 ] A [ i ] \text{S}\left[ \text{i} \right] \underset{\text{j}1}{\overset{\text{i}}{\Sigma}}\text{A}\left[ \text{j} \right] \text{S}\left[ \text{i}-1 \right] \text{A}\left[ \text{i} \right] S[i]j1Σi​A[j]S[i−1…

后端程序员入门react笔记(一)

相关参考 react 首先&#xff0c;我们先大概了解一下什么是react以及react可以干什么。 React 是 Facebook 开源的一个用于构建用户界面的一款 JavaScript 库&#xff0c;主要用于构建 UI。 react的特点 声明式编程 react使用jsx进行渲染&#xff0c;这是一种类似html的语法…