kubernetes - 为什么k8s服务被删除了,但是集群IP还在
问题描述
我可以轻松地重现此问题,但在 k8s 文档或社区中都找不到此问题的答案。
简单的重现步骤:
- 使用以下配置创建服务和端点
---
kind: Service
apiVersion: v1
metadata:
name: hostname
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 9376
---
kind: Endpoints
apiVersion: v1
metadata:
name: hostname
subsets:
- addresses:
- ip: 10.244.44.250
- ip: 10.244.154.235
ports:
- port: 9376
kubectl apply -f <filename>
应用配置- 测试服务,它运行完美。假设集群 IP 为 A
kubectl delete -f <filename>
kubectl apply -f <filename>
再次删除服务和端点- 我们得到了另一个集群 IP B,它也很完美
- 但是,集群 IP A 并未按预期删除。我仍然可以使用 A 访问该服务。
- 更新端点定义(添加新端点 IP 或删除一个)并应用,B 看到更改,而 A 仍然使用旧配置。
有没有人可以解释那里发生了什么?
我的k8s版本是:
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:09:21Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
解决方案
推荐阅读
- c# - WPF“重叠”滚动查看器
- visual-studio-code - 等到符号提供程序可用
- spring-boot - 如何使用 gradle 下载所有 Spring Boot 依赖项
- google-apps-script - 使用谷歌表格中的命名范围作为自定义公式中的变量
- rxjs - RxJs 窗口:没有得到最后一个可观察的
- asp.net-core - 无法使用 Azure AD 策略进行身份验证:授权失败并被禁止
- c# - 我在 c# vb 中的 System.speech 中有问题,问题是:没有安装识别器
- r - 从 lsmeans 生成矩阵对比返回
- linux - 无法:make install:Linux 内核模块 SSL 错误
- ios - CloudKit:订阅另一个用户的数据