EDIT: Tout l’intérêt de mon installation est d’atteindre (si possible) ce qui suit:
J'utilise un petit cluster Kubernetes (construit avec kubeadm) afin d'évaluer si je peux déplacer ma configuration de Docker (old) Swarm vers k8s. La fonctionnalité dont j'ai absolument besoin est la possibilité d'attribuer une adresse IP à des conteneurs, comme je le fais avec MacVlan.
Dans ma configuration actuelle de menu fixe, j'utilise MacVlan pour attribuer des adresses IP du réseau de mon entreprise à certains conteneurs afin que je puisse accéder directement (sans reverse proxy), comme s'il s'agissait d'un serveur physique. J'essaie de réaliser quelque chose de similaire avec les K8.
J'ai découvert que:
Mon fichier yaml est:
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
J'espérais que mon service obtiendrait l'IP A.B.C.D (qui est l'un des réseaux de mon entreprise). Mon déploiement fonctionne car je peux atteindre mon conteneur nginx depuis l'intérieur du cluster k8s en utilisant ClusterIP.
Qu'est-ce que je rate ? Ou du moins, où puis-je trouver des informations sur le trafic de mon réseau afin de voir si des paquets arrivent?
MODIFIER :
$ 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
Merci.
Si ceci est juste pour tester, alors essayez
kubectl port-forward service/nginx-service 80:80
Ensuite vous pouvez
curl http://localhost:80
vous pouvez essayer la configuration de kube-keepalived-vip pour acheminer le trafic. https://github.com/kubernetes/contrib/tree/master/keepalived-vip
Vous pouvez essayer d'ajouter "type: NodePort" dans votre fichier yaml pour le service, puis vous aurez un port pour y accéder via le navigateur Web ou de l'extérieur. Pour mon cas, ça m'a aidé.