k8s集群证书更新

关于kubernetes-admin用户 在 Kubernetes 中,kubernetes-admin 是一个特殊的用户,它在集群初始化时被创建,并被授予了集群管理员的权限。当 API server 启动时,它会使用 --authorization-mode=Node,RBAC 参数来启动 RBAC 授权模式,并且它会自动创建一个名为 system:masters 的用户组,并将 kubernetes-admin 用户添加到这个组中。 ...

2023-09-18 · 2 min · 846 words · Superb

K8S的资源限制

在 Kubernetes 中,当你为 Pod 设置了资源限制(包括 CPU 和内存)时,这些限制将被 Docker 容器引擎(或其他容器运行时)应用到运行的容器上。然而,docker stats 命令显示的 CPU 和内存使用百分比的计算方式是不同的。 ...

2023-09-15 · 1 min · 335 words · Superb

TCP

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP连接的建立和维护中,有一种被称为TCP状态机的机制,它描述了TCP连接在其生命周期内可能经历的所有状态。 ...

2023-09-08 · 4 min · 1853 words · Superb

HTTP Header

X-Forwarded-For、X-Original-Forwarded-For 和 X-Real-IP 都是 HTTP 请求头部字段,用于记录客户端的原始 IP 地址。它们在处理通过代理服务器或负载均衡器的请求时具有重要作用。 ...

2023-09-07 · 2 min · 887 words · Superb

tcpdump/tshark

tcpdump tshark是Wireshark的命令行版本,命令参数类似tcpdump tcpdump -r capture.pcap -c 30 -n -tttt -r capture.pcap:指定要读取的抓包文件为"capture.pcap"。 -c 30:限制只抓取并显示30个数据包。 -n:以数字形式显示IP地址,而不进行反向DNS解析。 -t:在每行抓包结果中不打印时间戳。 -tt:在每行抓包结果中打印时间戳,以自1970年1月1日00:00:00 UTC以来的秒数和小数秒数表示。 -ttt:在每行抓包结果中打印当前行与前一行之间的时间差(微秒精度)。 -tttt:在每行抓包结果中打印时间戳,以自午夜以来的小时、分钟、秒钟和小数秒数表示,前面加上日期。 -ttttt:在每行抓包结果中打印当前行与第一行之间的时间差(微秒精度)。 tcpdump -c 262144 -C 10 -i ens192 -n port 9710 -w capture.pcap ...

2023-09-07 · 3 min · 1098 words · Superb

ipsec/wireguard

IPsec(Internet Protocol Security)和WireGuard都是用来创建安全网络连接的技术,但它们的工作方式有所不同。 WireGuard创建一个虚拟网络接口(例如wg0),并为这个接口配置IP地址和路由规则。这种方式使得管理和配置WireGuard的连接变得很直观,因为你可以使用标准的网络管理工具(如ip命令)来查看和修改这些设置。 ...

2023-09-04 · 2 min · 836 words · Superb

Linux namespace

最新的 Linux 5.6 内核中提供了 8 种类型的 Namespace: **Namespace名称 ** **作用 ** **内核版本 ** mount(mnt) 隔离挂载点 2.4.19 Process ID (pid) 隔离进程 ID 2.6.24 Network (net) 隔离网络设备、端口号等 2.6.29 Interprocess Communication (ipc) 隔离 System V IPC 和 POSIX message queues 2.6.19 UTS Namespace(uts) 隔离主机名和域名 2.6.19 User Namespace (user) 隔离用户和用户组 3.8 Control group (cgroup) Namespace 隔离 Cgroups 根目录 4.6 Time Namespace 隔离系统时间 5.6 目前 Docker 只使用了其中的前6 种,分别为 ...

2023-08-21 · 1 min · 194 words · Superb

容器中的privileged

rootless container rootless container中的”rootless”不仅仅指容器中以非root用户来运行进程,还指以非root用户来创建容器,管理容器。也就是说,启动容器的时候,是以非root用户来执行的。 ...

2023-08-21 · 2 min · 979 words · Superb

K8S的limits

对于 CPU,如果 pod 中服务使用 CPU 超过设置的limits,pod 不会被 kill 掉但会被限制 chatgpt回答 在 Kubernetes 中,当容器中的服务使用的 CPU 超过设置的 limits 时,Pod 不会被直接杀掉,而是会被限制(throttling)。 Kubernetes 使用 CPU throttling(CPU 限制)机制来处理超出限制的 CPU 使用情况。当容器使用的 CPU 超过其设置的 limits 时,Kubernetes 会限制容器的 CPU 使用,以确保其他容器和系统的正常运行。这种限制是通过在容器中引入 CPU throttling 周期来实现的。 CPU throttling 会将容器的 CPU 使用限制在设置的 limits 范围内。当容器使用的 CPU 超过 limits 时,Kubernetes 会限制容器的 CPU 时间片,使其在一段时间内只能使用一部分 CPU 资源。这样可以防止容器过度占用 CPU 资源,影响其他容器和系统的性能。 通过 CPU throttling,Kubernetes 在超出 CPU limits 的情况下仍然保持了容器的运行,但限制了其 CPU 使用,以避免对整个集群造成不利影响。这种机制可以帮助确保集群中的各个容器能够公平共享 CPU 资源,并提供一定程度的容错能力。 需要注意的是,虽然 CPU throttling 可以帮助限制容器的 CPU 使用,但过度的 CPU 使用可能会导致应用程序性能下降。因此,在设计和部署应用程序时,建议合理设置 CPU limits,以确保应用程序能够在适当的 CPU 资源范围内运行,并避免过度占用 CPU 资源。 网上回答 所有的资源类型,可以被划分为两大类:可压缩和不可压缩的。 ...

2023-07-27 · 3 min · 1109 words · Superb

Nginx配置疑惑

server.conf配置 server { listen 80; server_name example.com; location / { proxy_pass http://backend-server:8080; } } server { listen 1680; server_name another-domain.com; location / { proxy_pass http://backend-server:8080; } } 这是一段nginx配置,实际 example.com和another-domain.com 都能用到这2个端口号,为什么?因为后端服务是相同的吗?我理解,只有another-domain.com才能通过1680端口访问,而example.com只能通过80端口访问。 ...

2023-07-14 · 2 min · 629 words · Superb