почему была удалена служба k8s, но IP кластера все еще работает - PullRequest
0 голосов
/ 28 мая 2020

Я могу легко воспроизвести это и не смог найти ответа на эту проблему ни в k8s do c, ни в сообществе.

Простые шаги воспроизведения:

  1. создать сервис и конечная точка с конфигурацией ниже
---
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-адрес cluser B, который также отлично работает , однако , IP-адрес cluser 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"}
...