学习
如何修复变更 IP 之后的 Kubernetes 集群
· ☕ 4 分钟
记录一次因为 IP 变更导致集群故障的修复过程。有两个集群,一个是单节点(allinone),另一个是四节点(3 master 1 node)的集群。 1. 更新 Etcd 证书 【在每个 Etcd 节点】备份 Etcd 证书 1 cp -R /etc/ssl/etcd/ssl /etc/ssl/etcd/ssl-bak 查看 Etcd 证书中的域 1 2 3 openssl x509 -in /etc/ssl/etcd/ssl/node-node1.pem -noout -text|grep DNS DNS:etcd, DNS:etcd.kube-system, DNS:etcd.kube-system.svc, DNS:etcd.kube-system.svc.cluster.local, DNS:localhost, DNS:node1, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, IP Address:x.x.x.1 需要

Kubernetes 网络流量转发详解
· ☕ 16 分钟
本文翻译自 https://learnk8s.io/kubernetes-network-packets,并没有逐字翻译,带入了些自己的理解。 阅读本文,你可以了解在 Kubernetes 内外,数据包是如何转发的,从原始的 Web 请求开始,到托管应用程序的容器。 Kubernetes 网络要

OpenEBS 证书过期导致服务不可用
· ☕ 2 分钟
1. 安装方式 1 2 kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' OpenEBS 主要用来给 Tekton 流水线作为默认的存储使用。之前,我也试过 Longhorn,但是高峰期扛不住,流水线 Pending。而卸载 Longhorn 之后有残留,导致 kube-apiserver 一直报错,最后花了很大力气才删除。 2. Kubernetes 集群证书过期之后,OpenE

如何设置端口仅对指定 IP 开放访问
· ☕ 1 分钟
1. 主机服务端口 1 2 iptables -I INPUT -p tcp --dport 80 -j DROP iptables -I INPUT -p tcp -s 1.2.3.4 --dport 80 -j ACCEPT 这里仅允许 1.2.3.4 访问本地主机的 80 端口。 2. Docker 服务端口 对于类似 docker run -d -p 80:80 shaowenchen/demo:whoami 运行的服务,上面的方法无效,需要在 DOCKER-USER 链中添加规则。 Docker 会将 iptables 规则添加到 DOCKER 链中,如果需要在 Docker 之前添加规则需要添加到 DOCKER-USER 链中

使用 Linux TC 进行流量限制
· ☕ 3 分钟
1. Linux 下的流量控制原理 通过对包的排队,我们可以控制数据包的发送方式。这种控制,称之为数据整形,shape the data,包括对数据的以下操作: 增加延时 丢包 重新排列 重复、损坏 速率控制 在 qdisc-class-filter 结构下,对流量进行控制需要进行三个步骤: 创建 qdisc 队列 上面提到 Linux 是