论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
虚拟化.超融合.云计算
›
公有云
›
云计算、Docker、K8S问题
云计算、Docker、K8S问题
三尺非寒
金牌会员
|
2024-6-13 22:04:43
|
显示全部楼层
|
阅读模式
楼主
主题
678
|
帖子
678
|
积分
2034
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 模式的架构,后端是一个松耦合架构,模块各司其职。下图是它的总体架构图:
用户是使用 Docker Client 与 Docker Daemon 创建通讯,并发送哀求给后者。
Docker Daemon 作为 Docker 架构中的主体部门,首先提供 Docker Server 的功能使其可以担当Docker Client 的哀求。
Docker Engine 执行 Docker 内部的一系列工作,每一项工作都是以一个 Job 的形式的存在。
Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动 Graphdriver将下载镜像以 Graph 的形式存储。
当需要为 Docker 创建网络环境时,通过网络管理驱动 Networkdriver 创建并设置 Docker容器网络环境。
当需要限制 Docker 容器运行资源或执行用户指令等操纵时,则通过 Execdriver 来完成。
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。每种模式提供不同级别的网络隔离和互连。
bridge(桥接)模式:这是Docker的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的捏造网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥。容器通过这个捏造网桥举行通讯,可以互相访问。这种模式的好处是网络性能比host模式的好。
host(主机)模式:在这种模式下,Docker容器将共享主机的网络命名空间,这意味着容器将直接使用主机的网络栈,而不需要举行任何网络设置。容器可以访问主机的网络服务,如DNS和HTTP/HTTPS等。但是,由于容器和主机共享网络命名空间,因此大概会对主机的网络稳定性造成影响。
none(无网络)模式:在这种模式下,Docker容器没有自己的网络命名空间,也没有自己的IP地址。这种模式通常用于需要自定义网络设置的场景,比方使用自定义bridge或overlay网络等。
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名称举行通讯。
返回面试宝典
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
三尺非寒
金牌会员
这个人很懒什么都没写!
楼主热帖
Java多线程超级详解(只看这篇就够了) ...
微信小程序--点餐系统(本地服务器+源 ...
Centos7安装Mysql5.7(超详细版) ...
可观测性之两大误区
GPRS与4G网络:技术差异与应用选择 ...
Yarn平滑下线节点(Graceful Decommiss ...
公司入职一个阿里大佬,把 Spring Boot ...
小白也可以轻松破解被加密的ZIP口令啦 ...
环形缓冲区 Ring Buffer 的实现 ...
计算机网络-IP地址
标签云
挺好的
服务器
快速回复
返回顶部
返回列表