Commit Graph

61 Commits (b2b3c36ecb6fafac00be0685bd4fa5bc0d912a4e)

Author SHA1 Message Date
Dr. Stefan Schimanski e32f380fa5 apiserver: get rid of ReadWritePort in config 2018-07-09 14:03:08 +02:00
Kubernetes Submit Queue 0ba80021c5
Merge pull request #56690 from redbaron/master
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Disable session affinity for internal kuberntes service

Under following conditions session affinity leads to a deadlock:
  - Self hosted controller-manager, where it talks to API servers
    via kubernetes service ClusterIP
  - default master-count reconcilier is used
  - --apiserver-count is set to >1 according to the help message
  - number of responsive APIServers goes below `apiserver-count`
  - all controller-managers happen to be hashed to APIServers which
    are down.

What then happens is that controller managers never be able to
contact APIServer, despite correctly working APIServer available.

Less serious outages also possible for other consumers of kubernetes
service, such as operators, kube-dns, flannel & calico, etc.  There is
always non zero chance, that given consumer is hashed  to an apiserver
which is down.

This reverts PR https://github.com/kubernetes/kubernetes/pull/23129

/sig api-machinery
CCing:
  -  author and approver of reverted PR: @mikedanese, @lavalamp 
  - other affected users which spoke up: @jsravn, @tatsuhiro-t 


```release-note
NONE
```
2018-05-10 04:20:40 -07:00
Jordan Liggitt a2ef4735cd
Let the kubernetes service reconciler timeout on shutdown 2018-05-02 22:44:28 -04:00
Chao Xu 83d535aa6c Client ca post start hook now checks if the system namespace already exists
before creating it.

This avoids apiserver crashloops if a webhook rejects namespace
creation when the apiserver is rebooted.
2018-01-30 16:19:33 -08:00
Maxim Ivanov f2405cf294 Disable session affinity for internal kuberntes service
Under following conditions session affinity leads to a deadlock:
  - Self hosted controller-manager, where it talks to API servers
    via kubernetes service ClusterIP
  - default master-count reconcilier is used
  - --apiserver-count is set to >1 according to the help message
  - number of responsive APIServers goes below `apiserver-count`
  - all controller-managers happen to be hashed to APIServers which
    are down.

What then happens is that controller managers never be able to
contact APIServer, despite correctly working APIServer available.

Less serious outages also possible for other consumers of kubernetes
service, such as operators, kube-dns, flannel & calico, etc.  There is
always non zero chance, that given consumer is hashed  to an apiserver
which is down.

Revert "give the kubernetes service client ip session affinity"
This reverts commit e21ebbcac4.
2017-12-01 11:09:57 +00:00
Ferran Rodenas 8ed0bc1250 Send events on ip and port allocator repair controller errors
Signed-off-by: Ferran Rodenas <rodenasf@vmware.com>
2017-11-24 19:10:06 +01:00
Dr. Stefan Schimanski 012b085ac8 pkg/apis/core: mechanical import fixes in dependencies 2017-11-09 12:14:08 +01:00
Robert Rati 00b085ad4a Added PreShutdownHook functions for endpoint reconcilers 2017-10-16 08:18:34 -04:00
Ryan Phillips d1bb08f44a add lease endpoint reconciler
fixes kubernetes/community#939
fixes kubernetes/kubernetes#22609
2017-09-11 10:42:36 -05:00
Dr. Stefan Schimanski 1bcea54104 apiserver: make config completion structural recursion 2017-09-08 14:16:09 +02:00
Dr. Stefan Schimanski 7d09148ad7 apiserver: separate apiserver specific configs into ExtraConfig 2017-09-08 14:16:09 +02:00
m1093782566 617e6f4fa8 remove explictly set timeout value 2017-09-01 16:18:06 +08:00
m1093782566 c355a2ac96 Paramaterize stickyMaxAgeMinutes for service in API 2017-08-25 17:44:47 +08:00
Kubernetes Submit Queue cfb08cd9a0 Merge pull request #41115 from rajatchopra/kube_service_fix
Automatic merge from submit-queue

fix service spec for kube api server

For the auto generated kube api-server service, the service spec re-uses the service port itself. The endpoint is created correctly using public port. Fix the service also because there are some plugin controllers that react to service spec itself.

Before fix:
```
sh-4.2# kubectl get endpoints
NAME         ENDPOINTS                                         AGE
kubernetes   172.17.0.2:8443,172.17.0.2:8053,172.17.0.2:8053   20h

sh-4.2# kubectl get services kubernetes -o json
...
...
        "spec": {
                "clusterIP": "172.30.0.1",
                "ports": [
                    {
                        "name": "https",
                        "port": 443,
                        "protocol": "TCP",
                        "targetPort": 443     ## <--- same as port, even if the endpoint really means 8443
                    },
                    {
                        "name": "dns",
                        "port": 53,
                        "protocol": "UDP",
                        "targetPort": 8053
                    },
                    {
                        "name": "dns-tcp",
                         ...
```

After fix:
```
"spec": {
                "clusterIP": "172.30.0.1",
                "ports": [
                    {
                        "name": "https",
                        "port": 443,
                        "protocol": "TCP",
                        "targetPort": 8443     # <-- fixed, now matches the endpoint object
                    },
                    {
                        "name": "dns",
                        "port": 53,
                        "protocol": "UDP",
                        "targetPort": 8053
                    },
                    {
                        "name": "dns-tcp",

``
2017-02-13 17:03:22 -08:00
Joe Beda da93009d91
Creates new `kube-public` namespace as a peer to `kube-system` 2017-02-10 12:47:25 -08:00
Rajat Chopra 440dcd3675 For the auto generated kube api-server service, the service spec re-uses the service port itself. The endpoint is created correctly using public port. Fix the service also because there are some plugin controllers that react to service spec itself. 2017-02-07 20:43:20 -05:00
Dr. Stefan Schimanski 536460e1d9 Mechanical fixup imports: pkg/genericapiserver 2017-02-03 08:15:45 +01:00
deads2k c9a008dff3 move util/intstr to apimachinery 2017-01-30 12:46:59 -05:00
Clayton Coleman 469df12038
refactor: move ListOptions references to metav1 2017-01-23 17:52:46 -05:00
Dr. Stefan Schimanski 3d9449a353 genericapiserver: fix imports 2017-01-19 13:06:47 +01:00
Clayton Coleman 9a2a50cda7
refactor: use metav1.ObjectMeta in other types 2017-01-17 16:17:19 -05:00
deads2k 77b4d55982 mechanical 2017-01-16 09:35:12 -05:00
deads2k 6a4d5cd7cc start the apimachinery repo 2017-01-11 09:09:48 -05:00
Wojciech Tyczynski e8d1cba875 GetOptions in client calls 2016-12-09 09:42:01 +01:00
deads2k ea8ad3e349 reconcile when service already exists 2016-12-01 09:14:31 -05:00
deads2k a111bd7690 switch to clients for bootstrap controller 2016-12-01 09:14:31 -05:00
Wojciech Tyczynski 03b9be982f Fix TestServiceAlloc test 2016-11-14 10:11:37 +01:00
deads2k d82f98c9b3 remove non-generic options from genericapiserver.Config 2016-11-03 11:48:33 -04:00
Chao Xu 850729bfaf include multiple versions in clientset
update client-gen to use the term "internalversion" rather than "unversioned";
leave internal one unqualified;
cleanup client-gen
2016-10-29 13:30:47 -07:00
deads2k 5d3a210321 convert bootstrap controller to posthook to tighten master.go 2016-10-10 08:15:45 -04:00
deads2k 561f8d75a5 move core resource registry packages 2016-09-21 10:11:50 -04:00
AdoHe a6539f846a move RangeRegistry to a separate package for generic usage 2016-08-09 13:10:48 +08:00
Harry Zhang e0ab76019e Rename runnter pkg name 2016-07-29 02:37:00 -04:00
Wojciech Tyczynski 4fa3aba0c2 Get rid of DeleteAllEtcdKeys 2016-07-05 22:10:47 +02:00
David McMahon ef0c9f0c5b Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
Andy Goldstein 04ce042ff9 Extract interface for master endpoints reconciler.
Make the master endpoints reconciler an interface so its implementation can be overridden, if
desired.
2016-06-06 17:56:23 -04:00
Lucas Käldström 8ea3a9319c Automatically create the kube-system namespace 2016-05-05 22:27:49 +03:00
Clayton Coleman fdb110c859
Fix the rest of the code 2016-04-29 17:12:10 -04:00
Mike Danese e21ebbcac4 give the kubernetes service client ip session affinity 2016-03-17 09:38:22 -07:00
Jan Chaloupka 4389b3f0d6 Rewritte util.* -> wait.* wherever reasonable 2016-02-07 12:02:20 +01:00
harry 1032067ff9 Replace runtime reference by pkg 2016-02-01 21:06:44 +08:00
Harry Zhang 936a11e775 Use networking to hold network related pkgs
Change names of unclear methods

Use net as pkg name for short
2016-01-15 13:46:16 +08:00
Andrew Butcher 101a9927e4 Do not update kubernetes endpoints when endpoint address count is less than or equal to master count.
checkEndpointSubsetFormat ensures that,
1. the current master's IP is in the list of addresses
2. the number of IPs in the list exactly matches the master count

This is problematic while masters are in the process of starting
because it causes frequent updates to the kubernetes endpoints until
all masters have started and added themselves to the list.

checkEndpointSubsetFormat should report success if the current
master's IP is found and the count of addresses is less than or equal
to the expected count.
2015-12-01 14:31:22 -05:00
Tim Hockin ba383bcfeb Refactor IntOrString into a new pkg
pkg/util/intstr is a cleaner encapsulation for this type and supporting
functions.  No behavioral change.
2015-11-16 10:57:52 -08:00
feihujiang 3603b14977 Move service strategy to registry/service package 2015-11-02 19:56:03 +08:00
Andrew Butcher 0c4aafaf1e Update master service ports and type via controller. 2015-10-29 10:56:46 -04:00
k8s-merge-robot ff7ce44e74 Merge pull request #14517 from jayunit100/reorder
Auto commit by PR queue bot
2015-10-18 09:04:23 -07:00
Andrew Butcher a2c97c7b0e Ports could be in reverse order or otherwise. 2015-10-13 07:42:43 -04:00
Andrew Butcher efd8e3c9c7 Additional service ports config for master service. 2015-10-13 07:42:40 -04:00
jayvyas be2a2ec3cd NodePort apiserver option for exposing KubernetesMasterService NodePort on startup. 2015-10-05 20:34:25 -04:00