Comments (4)
Hmm. The GameServer
name matches the Pod
name - couldn't you just connect to <GameServer name>:<container port>
and rely on DNS? I'm reticent to shoehorn a different policy in for something seemingly that simple.
from agones.
I don't understand your point. Your solution does not solve any of the issues I raised initially.
Yes, I guess I can directly connect to the server using the pod's IP. However:
- It still does bind a port to the node, which I want to avoid because I will not use it
- The
GameServer
'a status subresource was created with extensibility in mind, so exposing the pod's IP rather than the node one should not be hard
Everything was made to add this feature without hassle, and I find quite interesting to at least give the choice.
I hope I have convinced you :)
from agones.
It still does bind a port to the node, which I want to avoid because I will not use it
As you mentioned in the first comment, though, you don't have to bind a port to the node at all - you can add a container port to the pod spec and leave the ports
array of the GameServer
empty (at which point the Agones port policy is irrelevant).
ETA: This looks to be what you did in jeremylvln/Shulker#330
The GameServer'a status subresource was created with extensibility in mind, so exposing the pod's IP rather than the node one should not be hard
I agree that it's not hard to include the pod IP somewhere, but all policies come with a maintenance cost (tests, cross-cutting interactions with other features, etc). In this case you don't even need to know the address, though - you just need the GameServer
name (see #2704, which is now GA).
from agones.
To get connectivity inside the cluster, does the port need to be defined on the Pod? (I'm actually not sure on this one) -- I had assumed that all Pods could talk to all pods on any port by default? Or is my assumption here incorrect?
I could avoid specifying the ports field of the GameServer CRD, and add it the the Pod's template directly, however, I have some controllers that are listening to GameServer changes and that are consuming the address and ports fields for internal use.
The other option is to store this data on an annotation on the GameServer itself - would that work.
from agones.
Related Issues (20)
- Docs: Enhance "Scheduling and Autoscaling" with details on Counts and Lists
- Docs | Integration Patterns: Update Allocating based on GameServer Player Capacity to use Lists
- Docs | Integration Patterns: Update High Density GameServers to use a Counter
- Docs: Do you want a migration guide from Player Tracking to Lists?
- Migrate away from using the generate-groups script from k8s.io HOT 8
- Return Counter and List data when Allocating a GameServer HOT 6
- Adding GameServerSet Metric HOT 5
- Add pod label with allocation state HOT 8
- [ Terraform | GKE ] Add option to not create `agones-metrics` nodepools with cluster
- Performance test occasionally fails with `fatal error: concurrent map writes` HOT 4
- Can't
- Unable to start simple-game-server on windows node HOT 3
- Counter and List Priorities: Default to Ascending. HOT 2
- No validation on GameServerAllocation.Priorities HOT 1
- Autoscaler WebHook fallback Policy HOT 8
- MaxSurge and MinAvailable calculated incorrectly HOT 3
- Add leader election to the custom controller
- Release 1.39.0 HOT 1
- Inaccurate examples for Counter/List in fleetautoscaler.md. HOT 2
- Scale Down by Percent CounterPolicy or ListPolicy Can Lead to 0 Replicas HOT 1
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 agones.