ClusterIP: None and failing pods
up vote
1
down vote
favorite
I have an NGINX in front of several PODs, exposed through ClusterIP: none.
NGINX is forwarding traffic to these nodes like that:
upstream api {
server my-api:1066;
}
Will this configuration distribute traffic evenly among all PODs behind the my-api
hostname?
Will failing PODs be removed from the hostname resolution?
nginx kubernetes google-cloud-platform
add a comment |
up vote
1
down vote
favorite
I have an NGINX in front of several PODs, exposed through ClusterIP: none.
NGINX is forwarding traffic to these nodes like that:
upstream api {
server my-api:1066;
}
Will this configuration distribute traffic evenly among all PODs behind the my-api
hostname?
Will failing PODs be removed from the hostname resolution?
nginx kubernetes google-cloud-platform
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have an NGINX in front of several PODs, exposed through ClusterIP: none.
NGINX is forwarding traffic to these nodes like that:
upstream api {
server my-api:1066;
}
Will this configuration distribute traffic evenly among all PODs behind the my-api
hostname?
Will failing PODs be removed from the hostname resolution?
nginx kubernetes google-cloud-platform
I have an NGINX in front of several PODs, exposed through ClusterIP: none.
NGINX is forwarding traffic to these nodes like that:
upstream api {
server my-api:1066;
}
Will this configuration distribute traffic evenly among all PODs behind the my-api
hostname?
Will failing PODs be removed from the hostname resolution?
nginx kubernetes google-cloud-platform
nginx kubernetes google-cloud-platform
asked Nov 7 at 9:06
Alex Tbk
490520
490520
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
The default traffic distribution for Kubernetes services is random based on the default proxy mode: iptables. (This is likely your case)
In very old Kubernetes versions (<1.1) the default proxy mode: userspace would default to round-robin (you can still switch to that mode if you'd like to)
The newer way (< 1.8) of doing round robin (optionally) is to use proxy mode: ipvs.
You can also look at other solutions like Cillium that provide load balancing capabilities.
Is it wiser to assign fixed clusterip adresses to the pods behind nginx, so NGINX would exclude failed nodes? I am talking about -- upstream api {server my-api:1066;} (clusterip: none for my-api) -- vs upstream api {server api-ip1:1066;server api-ip2:1066;}
– Alex Tbk
Nov 8 at 6:08
Not really, because those change as pods come up and down, the service remains constant and it's manage by Kubernetes through endpoints
– Rico
Nov 8 at 18:08
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
The default traffic distribution for Kubernetes services is random based on the default proxy mode: iptables. (This is likely your case)
In very old Kubernetes versions (<1.1) the default proxy mode: userspace would default to round-robin (you can still switch to that mode if you'd like to)
The newer way (< 1.8) of doing round robin (optionally) is to use proxy mode: ipvs.
You can also look at other solutions like Cillium that provide load balancing capabilities.
Is it wiser to assign fixed clusterip adresses to the pods behind nginx, so NGINX would exclude failed nodes? I am talking about -- upstream api {server my-api:1066;} (clusterip: none for my-api) -- vs upstream api {server api-ip1:1066;server api-ip2:1066;}
– Alex Tbk
Nov 8 at 6:08
Not really, because those change as pods come up and down, the service remains constant and it's manage by Kubernetes through endpoints
– Rico
Nov 8 at 18:08
add a comment |
up vote
1
down vote
The default traffic distribution for Kubernetes services is random based on the default proxy mode: iptables. (This is likely your case)
In very old Kubernetes versions (<1.1) the default proxy mode: userspace would default to round-robin (you can still switch to that mode if you'd like to)
The newer way (< 1.8) of doing round robin (optionally) is to use proxy mode: ipvs.
You can also look at other solutions like Cillium that provide load balancing capabilities.
Is it wiser to assign fixed clusterip adresses to the pods behind nginx, so NGINX would exclude failed nodes? I am talking about -- upstream api {server my-api:1066;} (clusterip: none for my-api) -- vs upstream api {server api-ip1:1066;server api-ip2:1066;}
– Alex Tbk
Nov 8 at 6:08
Not really, because those change as pods come up and down, the service remains constant and it's manage by Kubernetes through endpoints
– Rico
Nov 8 at 18:08
add a comment |
up vote
1
down vote
up vote
1
down vote
The default traffic distribution for Kubernetes services is random based on the default proxy mode: iptables. (This is likely your case)
In very old Kubernetes versions (<1.1) the default proxy mode: userspace would default to round-robin (you can still switch to that mode if you'd like to)
The newer way (< 1.8) of doing round robin (optionally) is to use proxy mode: ipvs.
You can also look at other solutions like Cillium that provide load balancing capabilities.
The default traffic distribution for Kubernetes services is random based on the default proxy mode: iptables. (This is likely your case)
In very old Kubernetes versions (<1.1) the default proxy mode: userspace would default to round-robin (you can still switch to that mode if you'd like to)
The newer way (< 1.8) of doing round robin (optionally) is to use proxy mode: ipvs.
You can also look at other solutions like Cillium that provide load balancing capabilities.
answered Nov 7 at 18:58
Rico
23.4k94864
23.4k94864
Is it wiser to assign fixed clusterip adresses to the pods behind nginx, so NGINX would exclude failed nodes? I am talking about -- upstream api {server my-api:1066;} (clusterip: none for my-api) -- vs upstream api {server api-ip1:1066;server api-ip2:1066;}
– Alex Tbk
Nov 8 at 6:08
Not really, because those change as pods come up and down, the service remains constant and it's manage by Kubernetes through endpoints
– Rico
Nov 8 at 18:08
add a comment |
Is it wiser to assign fixed clusterip adresses to the pods behind nginx, so NGINX would exclude failed nodes? I am talking about -- upstream api {server my-api:1066;} (clusterip: none for my-api) -- vs upstream api {server api-ip1:1066;server api-ip2:1066;}
– Alex Tbk
Nov 8 at 6:08
Not really, because those change as pods come up and down, the service remains constant and it's manage by Kubernetes through endpoints
– Rico
Nov 8 at 18:08
Is it wiser to assign fixed clusterip adresses to the pods behind nginx, so NGINX would exclude failed nodes? I am talking about -- upstream api {server my-api:1066;} (clusterip: none for my-api) -- vs upstream api {server api-ip1:1066;server api-ip2:1066;}
– Alex Tbk
Nov 8 at 6:08
Is it wiser to assign fixed clusterip adresses to the pods behind nginx, so NGINX would exclude failed nodes? I am talking about -- upstream api {server my-api:1066;} (clusterip: none for my-api) -- vs upstream api {server api-ip1:1066;server api-ip2:1066;}
– Alex Tbk
Nov 8 at 6:08
Not really, because those change as pods come up and down, the service remains constant and it's manage by Kubernetes through endpoints
– Rico
Nov 8 at 18:08
Not really, because those change as pods come up and down, the service remains constant and it's manage by Kubernetes through endpoints
– Rico
Nov 8 at 18:08
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53186324%2fclusterip-none-and-failing-pods%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown