Comments (2)
Yes, it's really not an easy fix at all.
To fully handle this Akrobateo should also "watch" the owning resource(s) of the pods where the selector matches and only from there map the name to a port number. This gets tricky fast as in todays Kubernetes setups there might be lot's of different operators and controllers creating pods. IMO it's not really sufficient to just check those name-port mappings from the pods alone as in any given time there might be e.g. a deployment rollout in progress and thus pods with different mappings.
So as you probably found out, the workaround is to use direct port numbers in the service.
from akrobateo.
This should be handled in https://github.com/kontena/akrobateo/blob/master/pkg/controller/service/service_controller.go#L232 fff, but for me it seems, that its not an easy fix. The current implementation takes one port and deploys this on all machines with the akrobateo-lb docker image via IPTables, but when using a named port the port in the backends may not be equal. Compare https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
Perhaps more interesting is that
targetPort
can be a string, referring to the name of a port in the backendPods
. The actual port number assigned to that name can be different in each backendPod
.
from akrobateo.
Related Issues (17)
- Add automated builds
- Add deployment yamls
- Docs
- Renaming HOT 4
- Select between daemonset and deployment
- Container bins report wrong version
- Tolerations & node selectors
- LB POD Crashloop HOT 7
- Daemonset Not Deleted HOT 3
- default deployment gives rbac error
- service doesn't terminate on sigterm HOT 3
- Release 0.1.1 HOT 1
- [FEATURE] Have the ability to disable the init container (which requires privileged permissions) HOT 1
- ip_forward is not enabled HOT 5
- akrobateo-lb with single External-IP HOT 1
- Akrobateo registry (https://registry.pharos.sh) is out of service making it non-operable HOT 31
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from akrobateo.