Создание службы LoadBalancer

Делаю:
21.04.2020

Deployment создан какздесь


$ cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  name: nodejs-casts-app-loadbalancer
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 8080
    nodePort: 30123
  selector:
    app: nodejs-cats-app
    env: dev
EOF


$ kubectl get svc
NAME                            TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
nodejs-casts-app-loadbalancer   LoadBalancer   10.104.115.199   <pending>     80:30123/TCP   55s


$ kubectl describe svc nodejs-casts-app-loadbalancer
Name:                     nodejs-casts-app-loadbalancer
Namespace:                demo
Labels:                   <none>
Annotations:              Selector:  app=nodejs-cats-app,env=dev
Type:                     LoadBalancer
IP:                       10.104.115.199
Port:                     <unset>  80/TCP
TargetPort:               8080/TCP
NodePort:                 <unset>  30123/TCP
Endpoints:                172.17.0.4:8080,172.17.0.5:8080,172.17.0.6:8080
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>


Чтобы работало, нужно чтобы в Endpoints были перечислены IP виртуальных подов и порты запущенных приложений.


// Если не используется профиль, удалить
// Если не используется namespace, таке можно убрать -n default
$ echo $(minikube --profile my-profile service nodejs-casts-app-loadbalancer -n default --url)
http://192.168.99.113:30123


$ kubectl delete svc nodejs-casts-app-loadbalancer