- 博客(19)
- 收藏
- 关注
原创 k8s 100个高频面试题
以下是 100 个 Kubernetes(k8s)高频面试题及其答案,涵盖了 Kubernetes 的核心概念、架构、组件、工作原理以及实际应用。答案:Master 节点组件:API Server:提供 RESTful API 接口,用于与集群交互。etcd:分布式键值存储,用于存储集群的配置数据和状态信息。Controller Manager:运行各种控制器进程,负责维护集群的状态。Scheduler:负责将 Pod 调度到合适的节点上运行。Worker 节点组件:Kubelet:运行在每个节点上的代理,
2024-10-24 10:37:34
572
原创 k8s 经典面试题 三
Kubernetes 调度器使用 Resource Requests 来决定将 Pod 调度到哪个节点上,而 Resource Limits 用于限制 Pod 的资源使用。:当高优先级的 Pod 无法调度时,Kubernetes 可以抢占低优先级的 Pod 的资源,以确保高优先级的 Pod 能够调度。:用于定义 Pod 之间的亲和性规则,确保 Pod 调度到特定的节点或与其他 Pod 一起调度。Pod 安全策略通常与 RBAC 结合使用,确保只有授权用户可以创建具有特定权限的 Pod。
2024-10-23 16:08:55
284
原创 k8s 经典面试题 二
Deployment 允许你定义应用程序的期望状态,并自动管理 Pod 的创建、更新和删除。Deployment 允许你定义应用程序的期望状态,并自动管理 Pod 的创建、更新和删除。:用于管理有状态的应用程序,如数据库。:用于标记节点,阻止 Pod 调度到该节点上,除非 Pod 具有相应的容忍(Toleration)。:确保每个节点上运行一个 Pod 的副本,通常用于运行系统级服务,如日志收集器、监控代理等。:用于限制 Namespace 中可以使用的资源总量,如 CPU、内存、Pod 数量等。
2024-10-23 16:08:11
615
原创 k8s 经典面试题 一
在面试 Kubernetes(k8s)相关职位时,面试官通常会考察你对 Kubernetes 核心概念、架构、组件、工作原理以及实际应用的理解。以下是一些经典的 Kubernetes 面试题及其答案:答案:Master 节点组件:API Server:提供 RESTful API 接口,用于与集群交互。etcd:分布式键值存储,用于存储集群的配置数据和状态信息。Controller Manager:运行各种控制器进程,负责维护集群的状态。Scheduler:负责将 Pod 调度到合适的节点上运行。Worke
2024-10-23 16:06:38
592
原创 k8s 原理
Kubernetes 是一个强大的容器编排平台,通过声明式配置和自动化管理,简化了容器化应用程序的部署、扩展和管理。Kubernetes 的核心组件包括 Master 节点和 Worker 节点组件,核心概念包括 Pod、Service、Volume、Namespace、Deployment、StatefulSet、DaemonSet、ConfigMap 和 Secret。Kubernetes 通过控制循环、调度器和自愈机制,实现了自动化管理和高可用性。
2024-10-23 15:59:45
807
原创 k8s ingress 原理
Kubernetes 中的 Ingress 是一种用于管理对集群内部服务的 HTTP 和 HTTPS 路由的 API 对象。通过 Ingress,你可以定义复杂的路由规则,并集中管理多个服务的流量路由。Ingress 依赖于 Ingress Controller 来实现路由规则,常见的 Ingress Controller 包括 Nginx、HAProxy 和 Traefik 等。
2024-10-23 15:45:09
799
原创 k8s service 通信
Kubernetes 中的 Service 通过多种方式实现通信,包括 ClusterIP、NodePort、LoadBalancer 和 ExternalName。ClusterIP 用于集群内部的通信,NodePort 和 LoadBalancer 用于外部访问,ExternalName 用于映射外部 DNS 名称。通过kube-proxy组件和 DNS 服务,Service 提供了强大的网络管理功能,使得 Pod 之间的通信更加灵活和可靠。
2024-10-23 15:40:37
1608
原创 k8s service 原理
Service 是 Kubernetes 中用于管理网络访问的重要抽象。它为一组 Pod 提供了一个稳定的网络端点,并支持多种类型的访问方式(如 ClusterIP、NodePort、LoadBalancer 和 ExternalName)。通过kube-proxy组件,Service 实现了负载均衡,并将流量转发到后端的 Pod。Service 与Endpoints对象和 DNS 服务紧密结合,提供了强大的网络管理功能。
2024-10-23 15:36:26
786
原创 k8s configmap 原理
ConfigMap 是 Kubernetes 中用于管理配置数据的重要工具。它允许你将配置数据与应用程序代码分离,从而提高应用程序的可移植性和灵活性。通过环境变量或卷挂载的方式,ConfigMap 可以方便地被应用程序使用。
2024-10-23 15:27:28
576
原创 TCP 四次握手
通过这四次挥手,双方都确认了对方已经完成了数据发送,并且可以安全地关闭连接。TIME_WAIT状态确保了最后一个ACK包能够到达对方,防止数据包的丢失和重复。
2024-10-16 17:09:12
411
原创 TCP 三次握手
通过这三次握手,客户端和服务器都确认了对方的存在,并且双方都准备好进行数据传输。这个过程确保了连接的可靠性,避免了数据包的丢失和重复。
2024-10-16 17:05:55
491
原创 Redis 各类型的底层数据结构及详解
当集合中的所有元素都是整数且元素数量较少时,Redis 使用整数集合来存储。:当有序集合中的元素较少且元素长度较小时,Redis 使用压缩列表来存储。:位图实际上是字符串类型的一种应用,Redis 使用字符串来存储位图数据。:当列表中的元素较少且元素长度较小时,Redis 使用压缩列表来存储。:当哈希中的字段和值较少且长度较小时,Redis 使用压缩列表来存储。:当集合中的元素较多或元素不是整数时,Redis 使用哈希表来存储。:当哈希中的字段和值较多时,Redis 使用哈希表来存储。
2024-10-14 18:16:47
783
原创 Go 通道的底层数据结构
通道的底层数据结构 `hchan` 是一个复杂的结构体,包含了多个字段用于管理通道的状态、缓冲区、发送队列和接收队列等。通道的底层数据结构是一个复杂的结构体,它包含了多个字段,用于管理通道的状态、缓冲区、发送队列和接收队列等。`sudog` 是一个表示等待的 goroutine 的结构体,包含了 goroutine 的相关信息和等待的原因。通道的操作(发送、接收、关闭)都是通过 `hchan` 结构体中的字段和方法来实现的。如果缓冲区未满,元素将被放入缓冲区,并更新 `sendx` 和 `qcount`。
2024-10-14 18:00:11
1406
原创 Go 各数据类型的底层数据结构
底层数据结构:整数类型的底层数据结构就是其对应的二进制表示。例如,`int32` 是一个32位的有符号整数,`uint8` 是一个8位的无符号整数。`float32` 是一个32位的浮点数,`float64` 是一个64位的浮点数。底层数据结构:字符串类型的底层数据结构是一个不可变的字节序列。切片的长度是当前切片中元素的数量,容量是底层数组中从切片开始位置到数组末尾的元素数量。底层数据结构:布尔类型的底层数据结构是一个单字节的值,`true` 对应非零值,`false` 对应零值。
2024-10-11 19:32:43
1500
原创 进程、线程、协程
线程是进程中的一个执行单元,是操作系统进行调度的最小单位。一个进程可以包含多个线程,这些线程共享进程的内存空间和资源。进程是操作系统进行资源分配和调度的基本单位。:用户态的轻量级线程,适合需要高效调度和小开销的场景,但需要程序员显式控制调度。:独立的执行环境,资源分配和调度的基本单位,适合需要高隔离性和安全性的场景。在实际应用中,选择使用进程、线程还是协程,取决于具体的应用场景和需求。:共享进程资源的执行单元,适合需要高效并发和共享资源的场景。:进程之间的隔离性使得一个进程的崩溃不会影响其他进程。
2024-10-11 19:24:49
443
原创 MySQL 事务隔离级别
MySQL 提供了四种事务隔离级别,每种隔离级别都有其特定的行为和解决的问题。MySQL 的事务隔离级别定义了事务之间的隔离程度,决定了事务在并发执行时的行为。通常情况下,**读已提交**和**可重复读**是最常用的隔离级别。:在一个事务中,多次读取同一范围的数据,结果可能不同,因为其他事务可能已经插入或删除了数据。:在一个事务中,多次读取同一数据,结果可能不同,因为其他事务可能已经修改并提交了数据。每种隔离级别都有其特定的行为和解决的问题,下面详细介绍每种隔离级别及其特点。
2024-10-10 18:08:44
489
1
原创 MySQL 事务的特性
原子性确保事务操作的完整性,一致性确保数据库状态的合法性,隔离性确保并发事务的独立性,持久性确保事务结果的永久性。Undo Log 记录了事务的回滚操作,用于在事务失败时撤销操作。Redo Log 记录了事务的操作,数据文件存储了事务的结果。MySQL 事务具有四个关键特性,通常被称为 ACID 特性,这些特性确保了数据库事务的可靠性和一致性。- 原子性确保事务中的所有操作要么全部成功执行,要么全部不执行。如果事务中的任何操作失败,整个事务都会回滚到事务开始前的状态。-- 如果所有操作成功,事务提交。
2024-10-10 17:46:36
303
原创 Go 泛型
泛型为 Go 语言带来了更多的灵活性和可重用性,使得开发者能够编写更加通用的代码,减少重复劳动,并提升代码的可维护性。然而,由于泛型是 Go 语言的一个新特性,因此在使用时还需要注意一些限制和最佳实践,以确保代码的正确性和性能。在 Go 1.18 版本中,Go 语言引入了泛型(Generics)的支持,这是 Go 语言的一个重要更新。Go 中的泛型是通过类型参数(type parameters)来实现的,这些类型参数可以在函数、类型和方法中使用,以表示任意类型。包围,并放在函数或类型声明的参数列表之前。
2024-03-29 18:22:07
234
1
原创 Go 中使用MySQL分布式事务
库来创建一个分布式事务会话,并在该会话上启动了一个事务。然后,它在两个不同的MySQL数据库上执行了更新操作,并且通过事务的。在Go中使用MySQL进行分布式事务通常涉及两个或多个数据库节点,并且需要第三方库来处理分布式事务的协调,比如。请确保根据你的实际环境修改数据库连接字符串、用户凭证、数据库名称以及操作的具体SQL语句。请注意,这个示例假设你已经有了两个运行MySQL的数据库节点,分别位于。,并且你有一个etcd集群用于协调分布式事务。方法来提交这个分布式事务。首先,确保你已经安装了。
2024-03-29 17:11:26
428
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人