https://github.com/kubernetes/kubernetes/blob/master/docs/design/principles.md
kubernetes-docs-design-principles#no-hidden-internal-apis"no hidden internal APIs" kubernetes-docs-design-principles#no-hidden-internal-apis
kubernetes-docs-design-principles#history-not-needed"Object status must be 100% reconstructable by observation. Any history kept must be just an optimization and not required for correct operation." kubernetes-docs-design-principles#history-not-needed
kubernetes-docs-design-principles#cluster-wide-invariants"Cluster-wide invariants are difficult to enforce correctly. Try not to add them. If you must have them, don't enforce them atomically in master components, that is contention-prone and doesn't provide a recovery path in the case of a bug allowing the invariant to be violated. Instead, provide a series of checks to reduce the probability of a violation, and make every component involved able to recover from an invariant violation." kubernetes-docs-design-principles#cluster-wide-invariants
kubernetes-docs-design-principles#high-level-apis-intent-oriented"Higher-level APIs should be intent-oriented (think SLOs) rather than implementation-oriented (think control knobs)." kubernetes-docs-design-principles#high-level-apis-intent-oriented
kubernetes-docs-design-principles#edge-triggered-behaviorEdge-triggered behavior must be just an optimization. kubernetes-docs-design-principles#edge-triggered-behavior
kubernetes-docs-design-principles#assume-an-open-world"Assume an open world: continually verify assumptions and gracefully adapt to external events and/or actors. Example: we allow users to kill pods under control of a replication controller; it just replaces them." kubernetes-docs-design-principles#assume-an-open-world
kubernetes-docs-design-principles#self-healing-before-people-noticeComponents should be self-healing. For example, if you must keep some state (e.g., cache) the content needs to be periodically refreshed, so that if an item does get erroneously stored or a deletion event is missed etc, it will be soon fixed, ideally on timescales that are shorter than what will attract attention from humans. kubernetes-docs-design-principles#self-healing-before-people-notice
kubernetes-docs-design-principles#degrade-gracefullyComponent behavior should degrade gracefully. Prioritize actions so that the most important activities can continue to function even when overloaded and/or in states of partial failure. kubernetes-docs-design-principles#degrade-gracefully
kubernetes-docs-design-principles#only-api-server-communicates-with-etcdOnly the apiserver should communicate with etcd/store, and not other components (scheduler, kubelet, etc.). kubernetes-docs-design-principles#only-api-server-communicates-with-etcd
References eric-raymond-17-unix-rules