РЕДАКТИРОВАТЬ: Весь смысл моей установки заключается в достижении (если возможно) следующих результатов:
- У меня есть несколько узлов k8s
- Когда я связываюсь с IP-адресом (из моей сети компании), он должен быть перенаправлен на один из моих контейнеров /pod/service/whatever.
- Я должен иметь возможность легко настроить этот IP-адрес (например, в моем определении службы .yml).
Я запускаю небольшой кластер Kubernetes (построенный с помощью kubeadm), чтобы оценить, могу ли я перенести мою установку Docker (старый) Swarm на k8s. Особенность, в которой я абсолютно нуждаюсь, - это возможность назначать IP-контейнеры, например, с помощью MacVlan.
В моей текущей настройке докеры я использую MacVlan для назначения IP-адресов из моей сети компании в некоторые контейнеры, чтобы я мог напрямую связаться (без обратного прокси-сервера), как если бы это был какой-либо физический сервер. Я пытаюсь достичь чего-то подобного с k8s.
Я узнал, что:
- Мне нужно использовать Сервис
- Я не могу использовать тип LoadBalancer, как и для совместимых облачных провайдеров (например, GCE или AWS).
- Я должен использовать ExternalIPs
- Ingress Resources - это какой-то обратный прокси-сервер?
Мой файл yaml:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
nodeSelector:
kubernetes.io/hostname: k8s-slave-3
---
kind: Service
apiVersion: v1
metadata:
name: nginx-service
spec:
type: ClusterIP
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
externalIPs:
- A.B.C.D
Я надеялся, что мой сервис получит IP A.B.C.D(который является одной из моих сетей). Мое развертывание работает, так как я могу достичь своего контейнера nginx изнутри кластера k8s, используя его ClusterIP.
Что мне не хватает? Или, по крайней мере, где я могу найти информацию о моем сетевом трафике, чтобы узнать, поступают ли пакеты?
ИЗМЕНИТЬ:
$ kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.96.0.1 <none> 443/TCP 6d
nginx-service 10.102.64.83 A.B.C.D 80/TCP 23h
Спасибо.