k3s/cluster/addons
Kubernetes Submit Queue ef87482923 Merge pull request #52193 from StevenACoffman/kube-dns-anti-affinity
Automatic merge from submit-queue (batch tested with PRs 53106, 52193, 51250, 52449, 53861). 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>.

kube-dns-anti-affinity: kube-dns never-co-located-in-the-same-node

**What this PR does / why we need it**:

This is upstreaming the kubernetes/kops#2705 pull request by @jamesbucher that was originally against [kops](github.com/kubernetes/kops).
Please see kubernetes/kops#2705 for more details, including a lengthy discussion.

Briefly, given the constraints of how the system works today:

+ if you need multiple DNS pods primarily for availability, then requiredDuringSchedulingIgnoredDuringExecution makes sense because putting more than one DNS pod on the same node isn't useful
+ if you need multiple DNS pods primarily for performance, then
preferredDuringScheduling IgnoredDuringExecution makes sense because it will allow the DNS pods to schedule even if they can't be spread across nodes

**Which issue this PR fixes**

fixes kubernetes/kops#2693

**Release note**:


```release-note
Improve resilience by annotating kube-dns addon with podAntiAffinity to prefer scheduling on different nodes.
```
2017-10-16 14:47:20 -07:00
..
addon-manager use more-specific arm64v8 instead of deprecated aarch64 organization 2017-08-21 10:18:19 +08:00
calico-policy-controller Add RBAC, healthchecks, autoscaler and update Calico to v2.5.0, Typha to 0.4.0 2017-09-01 12:52:53 -07:00
cluster-loadbalancing Update OWNERS files for networking components 2017-08-03 11:08:54 -07:00
cluster-monitoring Update influxdb and grafana controller to latest version 2017-10-02 16:16:28 +08:00
dashboard update dashboard image version 2017-07-31 11:08:08 +08:00
dns Merge pull request #52193 from StevenACoffman/kube-dns-anti-affinity 2017-10-16 14:47:20 -07:00
dns-horizontal-autoscaler Merge kube-dns-autoscaler templates into a single file 2017-10-03 09:43:57 -07:00
etcd-empty-dir-cleanup make all static system pods critical 2017-06-12 15:22:04 -07:00
fluentd-elasticsearch update BUILD files 2017-10-15 18:18:13 -07:00
fluentd-gcp Merge pull request #52565 from crassirostris/sd-logging-update-plugin-0.6.7 2017-09-20 16:09:31 -07:00
ip-masq-agent Update OWNERS files for networking components 2017-08-03 11:08:54 -07:00
kube-proxy [GCE kube-up] Don't provision kubeconfig file on nodes when kube-proxy run as a DaemonSet 2017-10-13 14:40:40 -07:00
metadata-proxy Merge pull request #50647 from ihmccreery/fix-cve-2016-9063 2017-09-04 13:03:54 -07:00
metrics-server Autoscaler metrics-server with pod-nanny 2017-10-06 14:40:55 +02:00
node-problem-detector update related files 2017-08-24 17:49:18 +08:00
podsecuritypolicies
python-image Always --pull in docker build to ensure recent base images 2017-01-10 16:21:05 -08:00
rbac update to rbac v1 in yaml file 2017-08-21 17:29:37 +08:00
registry fix invalid url link 2017-08-24 18:50:14 +08:00
storage-class Support running StatefulSetBasic e2e tests with local-up-cluster 2017-04-28 15:10:22 -04:00
BUILD Run hack/update-bazel.sh to generate BUILD files 2017-08-02 18:33:25 -07:00
README.md Updates READMEs regarding the new behavior of addon-manager 2017-02-24 16:42:41 -08:00

README.md

Cluster add-ons

Overview

Cluster add-ons are resources like Services and Deployments (with pods) that are shipped with the Kubernetes binaries and are considered an inherent part of the Kubernetes clusters.

There are currently two classes of add-ons:

  • Add-ons that will be reconciled.
  • Add-ons that will be created if they don't exist.

More details could be found in addon-manager/README.md.

Cooperating Horizontal / Vertical Auto-Scaling with "reconcile class addons"

"Reconcile" class addons will be periodically reconciled to the original state given by the initial config. In order to make Horizontal / Vertical Auto-scaling functional, the related fields in config should be left unset. More specifically, leave replicas in ReplicationController / Deployment / ReplicaSet unset for Horizontal Scaling, leave resources for container unset for Vertical Scaling. The periodic reconcile won't clobbered these fields, hence they could be managed by Horizontal / Vertical Auto-scaler.

Add-on naming

The suggested naming for most of the resources is <basename> (with no version number). Though resources like Pod, ReplicationController and DaemonSet are exceptional. It would be hard to update Pod because many fields in Pod are immutable. For ReplicationController and DaemonSet, in-place update may not trigger the underlying pods to be re-created. You probably need to change their names during update to trigger a complete deletion and creation.

Analytics