East-West aka svc-to-svc
East-West Usage¶
If you run Skipper with an East-West setup, you can use the configured ingress also to do service-to-service calls, bypassing your ingress loadbalancer and stay inside the cluster. You can connect via HTTP to your application based on its ingress configuration.
Example:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo
namespace: default
spec:
rules:
- host: demo.skipper.cluster.local
http:
paths:
- backend:
service:
name: example
port:
number: 80
pathType: ImplementationSpecific
Or as a RouteGroup:
apiVersion: zalando.org/v1
kind: RouteGroup
metadata:
name: demo
namespace: default
spec:
hosts:
- demo.skipper.cluster.local
backends:
- name: backend
type: service
serviceName: example
servicePort: 80
defaultBackends:
- backendName: backend
Your clients inside the cluster should call this example with
demo.skipper.cluster.local in their host header. Example
from inside a container:
curl http://demo.skipper.cluster.local/
You can also use the same ingress or RouteGroup object to accept internal and external traffic:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo
namespace: default
spec:
rules:
- host: demo.example.com
http:
paths:
- backend:
service:
name: example
port:
number: 80
pathType: ImplementationSpecific
- host: demo.skipper.cluster.local
http:
paths:
- backend:
service:
name: example
port:
number: 80
pathType: ImplementationSpecific
Or, again, as a RouteGroup:
apiVersion: zalando.org/v1
kind: RouteGroup
metadata:
name: demo
namespace: default
spec:
hosts:
- demo.skipper.cluster.local
- demo.example.com
backends:
- name: backend
type: service
serviceName: example
servicePort: 80
defaultBackends:
- backendName: backend
Metrics will change, because skipper stores metrics per HTTP Host
header, which changes with cluster internal calls from
demo.example.org to demo.default.skipper.cluster.local.
You can use all features as defined in Ingress Usage, Filters, Predicates via annotations as before and also custom-routes.