玛卡巴卡的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 分钟前
K8S学习之基础十五:k8s中Deployment扩容缩容
学习·docker·云原生·kubernetes·k8s
颜淡慕潇3 小时前
【K8S系列】Kubernetes中查看日志常见问题&解决方案
后端·云原生·容器·kubernetes
三天不学习3 小时前
Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术
运维·docker·容器
mumu-hn3 小时前
Docker基础篇——Ubuntu下Docker安装
运维·docker·容器
自律的蜗牛5 小时前
在 Docker 中安装并配置 MySQL
mysql·docker·容器
xy123066 小时前
Kubernetes (K8s) 集群部署指南:从环境准备到应用部署(脚本部署)
docker·kubernetes
蜜獾云6 小时前
redisinsight 默认端口改成5540了
linux·docker·容器·redisinsight
绘绘~8 小时前
K8s构建带有maven环境的jenkins镜像
kubernetes·jenkins·maven
Linux运维老纪9 小时前
K8s 端口转发实战指南(Practical Guide to k8s Port Forwarding)
分布式·云原生·容器·kubernetes·运维开发
π大星星️11 小时前
Kubernetes中的微服务
微服务·容器·kubernetes