玛卡巴卡的k8s知识点问答题(二)

  1. 部署安装 K8s 为什么要关闭 swap 分区?

(1)资源管理失效,k8s无法感知swap的使用情况,因为他只监控物理内存,若启用了swap,pod可能会使用swap空间,导致k8s误判节点的使用情况。

(2)性能下降:swap的读写速度远远低于物理内存,使用swap会导致应用性能明显下降。

(3)Pod驱逐机制失效:k8s通过内存压力来触发Pod的驱逐机制,如果节点启用了swap,内存不足时系统会优先使用swap,而不是触发压力事件。

  1. 解释 br_netfilter。

br_netfilter 是 Linux 内核中的一个模块,主要用于桥接网络流量和防火墙(如 iptablesnftables)之间的交互。它允许对桥接流量进行过滤、NAT 等操作。

主要功能

  1. 桥接流量过滤

    • 默认情况下,Linux 桥接设备(br0 等)不经过 iptablesnftables 的过滤规则。

    • br_netfilter 模块使桥接流量也能被这些防火墙规则处理。

  2. NAT 支持

    • 支持在桥接流量上执行 NAT(网络地址转换),适用于虚拟机或容器通过桥接网络与外部通信的场景。
  3. 连接跟踪

    • 支持对桥接流量进行连接跟踪(conntrack),便于实现状态防火墙功能。
  4. 解释 kubeadm, kubectl, kubelet

kubeadm:k8s的官方集群管理工具,用于快速部署和管理K8s集群。

kubectl:是k8s的命令行工具,用于与k8s集群交互

kubelet:是k8s节点上的核心组件,负责节点上的pod容器。

使用场景

• 快速搭建 Kubernetes 集群(适用于开发、测试和生产环境)。

• 管理集群的生命周期(如初始化、升级、节点管理)。

示例

初始化一个 Kubernetes 集群:

kubeadm init --pod-network-cidr=10.244.0.0/16

将工作节点加入集群:

kubeadm join <控制平面节点的 IP>:6443 --token <token> --

discovery-token-ca-cert-hash sha256:<hash>

  1. kubectl

kubectl 是 Kubernetes 的命令行工具,用于与 Kubernetes 集群

交互。

功能

• 资源管理:创建、更新、删除 Kubernetes 资源(如 Pod、Service、

Deployment 等)。

• 集群管理:查看集群状态、节点信息、日志等。

• 调试和诊断:执行命令、查看日志、进入容器等。

使用场景

• 日常的 Kubernetes 资源管理。

• 集群的监控和故障排查。

示例

创建一个 Deployment:

kubectl create deployment nginx --image=nginx

查看 Pod 状态:

kubectl get pods

进入容器:

kubectl exec -it <pod-name> -- sh

  1. kubelet

kubelet 是 Kubernetes 节点上的核心组件,负责管理节点上的 Pod

和容器。

功能

• Pod 生命周期管理:根据 Kubernetes API Server 的指令,创

建、启动、停止和删除 Pod。

• 资源监控:监控节点上的资源使用情况(如 CPU、内存)。

• 健康检查:执行容器的存活探针(Liveness Probe)和就绪探

针(Readiness Probe)。

使用场景

• 在 Kubernetes 节点上运行和管理容器。

• 确保 Pod 按照期望状态运行。

工作原理

• kubelet 定期从 Kubernetes API Server 获取分配给当前节

点的 Pod 清单。

• 根据清单启动或停止容器。

• 将节点的状态和 Pod 的状态报告给 API Server。

相关推荐
笨小蛙16 分钟前
服务器Docker容器创建与VScode远程连接SSH使用
服务器·vscode·docker·容器·ssh
蓝色的猴子1 小时前
Linux.docker.k8s基础概念
linux·docker·kubernetes
斯普信云原生组1 小时前
K8S集群主机网络端口不通问题排查
网络·容器·kubernetes
matrixlzp1 小时前
K8S StatefulSet 快速开始
云原生·容器·kubernetes
David爱编程2 小时前
容器网络是怎么工作的?Pod、Service、CNI 一次讲清楚!
后端·云原生·容器
檀越剑指大厂4 小时前
【Docker系列】Docker 容器内安装`ps`命令
运维·docker·容器
锦瑟居士11 小时前
Docker 笔记 -- 借助AI工具强势辅助
笔记·docker·eureka
LetsonH11 小时前
Ubuntu 22.04 系统下 Docker 安装与配置全指南
linux·ubuntu·docker
xbd_zc11 小时前
【Dockerfile 完全参数化的通用 APT 源配置方案】
docker
两点王爷11 小时前
Java spingboot项目 在docker运行,需要含GDAL的JDK
java·开发语言·docker