M sphinx.addnodesdocument)}( rawsource children]docutils.nodessection)}(hhh](h title)}(hOverviewh]h TextOverview}(hhparenth _documenthsourceNlineNuba
attributes}(ids]classes]names]dupnames]backrefs]utagnamehhhhhh\/home/opnfv/slave_root/workspace/cntt-tox-ra2/doc/ref_arch/kubernetes/chapters/chapter01.rsthKubh)}(hhh](h)}(hIntroductionh]hIntroduction}(hh2hh0hhhNhNubah}(h!]h#]h%]h']h)]uh+hhh-hhhh,hKubh paragraph)}(hX The intention of this Reference Architecture is to develop a usable Kubernetes based platform for the Telecom operator
community. The RA will be based on the standard Kubernetes platform where ever possible. This Reference Architecture
for Kubernetes will describe the high level system components and their interactions, taking the
`goals and requirements <../../../common/chapter00.md>`__ and mapping them to real-world Kubernetes (and related)
components. This document needs to be sufficiently detailed and robust such that it can be used to guide the production
deployment of Kubernetes within an operator, whilst being flexible enough to evolve with and remain aligned with the
wider Kubernetes ecosystem outside of Telco.h](hXM The intention of this Reference Architecture is to develop a usable Kubernetes based platform for the Telecom operator
community. The RA will be based on the standard Kubernetes platform where ever possible. This Reference Architecture
for Kubernetes will describe the high level system components and their interactions, taking the
}(hXM The intention of this Reference Architecture is to develop a usable Kubernetes based platform for the Telecom operator
community. The RA will be based on the standard Kubernetes platform where ever possible. This Reference Architecture
for Kubernetes will describe the high level system components and their interactions, taking the
hh@hhhNhNubh reference)}(h9`goals and requirements <../../../common/chapter00.md>`__h]hgoals and requirements}(hgoals and requirementshhKhhhNhNubah}(h!]h#]h%]h']h)]namegoals and requirementsrefuri../../../common/chapter00.mduh+hIhh@ubhXR and mapping them to real-world Kubernetes (and related)
components. This document needs to be sufficiently detailed and robust such that it can be used to guide the production
deployment of Kubernetes within an operator, whilst being flexible enough to evolve with and remain aligned with the
wider Kubernetes ecosystem outside of Telco.}(hXR and mapping them to real-world Kubernetes (and related)
components. This document needs to be sufficiently detailed and robust such that it can be used to guide the production
deployment of Kubernetes within an operator, whilst being flexible enough to evolve with and remain aligned with the
wider Kubernetes ecosystem outside of Telco.hh@hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hKhh-hhubh?)}(hX To set this in context, it makes sense to start with the high level definition and understanding of Kubernetes.
`Kubernetes `__ is a "portable, extensible, open-source platform for managing containerised
workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing
ecosystem. Kubernetes services, support, and tools are widely available"
[`kubernetes.io `__]. Kubernetes is developed as an
open source project in the `kubernetes/kubernetes `__ repository of GitHub.h](hpTo set this in context, it makes sense to start with the high level definition and understanding of Kubernetes.
}(hpTo set this in context, it makes sense to start with the high level definition and understanding of Kubernetes.
hhihhhNhNubhJ)}(h'`Kubernetes `__h]h
Kubernetes}(h
KuberneteshhrhhhNhNubah}(h!]h#]h%]h']h)]namehzh\https://kubernetes.io/uh+hIhhiubhX is a “portable, extensible, open-source platform for managing containerised
workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing
ecosystem. Kubernetes services, support, and tools are widely available”
[}(hX is a "portable, extensible, open-source platform for managing containerised
workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing
ecosystem. Kubernetes services, support, and tools are widely available"
[hhihhhNhNubhJ)}(hT`kubernetes.io `__h]h
kubernetes.io}(h
kubernetes.iohhhhhNhNubah}(h!]h#]h%]h']h)]namehh\@https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/uh+hIhhiubh<]. Kubernetes is developed as an
open source project in the }(h<]. Kubernetes is developed as an
open source project in the hhihhhNhNubhJ)}(hD`kubernetes/kubernetes `__h]hkubernetes/kubernetes}(hkubernetes/kuberneteshhhhhNhNubah}(h!]h#]h%]h']h)]namehh\(https://github.com/kubernetes/kubernetesuh+hIhhiubh repository of GitHub.}(h repository of GitHub.hhihhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hKhh-hhubh?)}(hX To assist with the goal of creating a reference architecture that will support Telco workloads, but at the same time
leverage the work that already has been completed in the Kubernetes community, RA2 will take an
"RA2 `Razor `__" approach to build the foundation. This can be
explained along the lines of "if something is useful for non-Telco workloads, we will not include it only for Telco
workloads". For example, start the Reference Architecture from a vanilla Kubernetes (say, v1.16) feature set, then
provide clear evidence that a functional requirement cannot be met by that system (say, multi-NIC support), only then
the RA would add the least invasive, Kubernetes-community aligned extension (say, Multus) to fill the gap. If there are
still gaps that cannot be filled by standard Kubernetes community technologies or extensions then the RA will concisely
document the requirement and approach the relevant project maintainers with a request to add this functionality into
the feature set.h](hTo assist with the goal of creating a reference architecture that will support Telco workloads, but at the same time
leverage the work that already has been completed in the Kubernetes community, RA2 will take an
“RA2 }(hTo assist with the goal of creating a reference architecture that will support Telco workloads, but at the same time
leverage the work that already has been completed in the Kubernetes community, RA2 will take an
"RA2 hhhhhNhNubhJ)}(h=`Razor `__h]hRazor}(hRazorhhhhhNhNubah}(h!]h#]h%]h']h)]namehh\1https://en.wikipedia.org/wiki/Philosophical_razoruh+hIhhubhX ” approach to build the foundation. This can be
explained along the lines of “if something is useful for non-Telco workloads, we will not include it only for Telco
workloads”. For example, start the Reference Architecture from a vanilla Kubernetes (say, v1.16) feature set, then
provide clear evidence that a functional requirement cannot be met by that system (say, multi-NIC support), only then
the RA would add the least invasive, Kubernetes-community aligned extension (say, Multus) to fill the gap. If there are
still gaps that cannot be filled by standard Kubernetes community technologies or extensions then the RA will concisely
document the requirement and approach the relevant project maintainers with a request to add this functionality into
the feature set.}(hX " approach to build the foundation. This can be
explained along the lines of "if something is useful for non-Telco workloads, we will not include it only for Telco
workloads". For example, start the Reference Architecture from a vanilla Kubernetes (say, v1.16) feature set, then
provide clear evidence that a functional requirement cannot be met by that system (say, multi-NIC support), only then
the RA would add the least invasive, Kubernetes-community aligned extension (say, Multus) to fill the gap. If there are
still gaps that cannot be filled by standard Kubernetes community technologies or extensions then the RA will concisely
document the requirement and approach the relevant project maintainers with a request to add this functionality into
the feature set.hhhhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hKhh-hhubh?)}(hX The Kubernetes Reference Architecture will be used to determine a Kubernetes Reference Implementation. The Kubernetes
Reference Implementation would then also be used to test and validate the supportability and compatibility with
Kubernetes-based Network Function workloads, and lifecycle management of Kubernetes clusters, of interest to the Anuket
community. It is expected that the Kubernetes Reference Architecture, Reference Implementation, and Reference
Conformance will be developed building on the work already in place for OpenStack in the Anuket project. The intention
is to expand as much of the existing test frameworks to be used for the verification and conformance testing of
Kubernetes-based workloads, and Kubernetes cluster lifecycle management.h]hX The Kubernetes Reference Architecture will be used to determine a Kubernetes Reference Implementation. The Kubernetes
Reference Implementation would then also be used to test and validate the supportability and compatibility with
Kubernetes-based Network Function workloads, and lifecycle management of Kubernetes clusters, of interest to the Anuket
community. It is expected that the Kubernetes Reference Architecture, Reference Implementation, and Reference
Conformance will be developed building on the work already in place for OpenStack in the Anuket project. The intention
is to expand as much of the existing test frameworks to be used for the verification and conformance testing of
Kubernetes-based workloads, and Kubernetes cluster lifecycle management.}(hhhhhhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK!hh-hhubh)}(hhh](h)}(hTerminologyh]hTerminology}(hhhhhhhNhNubah}(h!]h#]h%]h']h)]uh+hhhhhhh,hK*ubh?)}(h^For terminology used in this document refer to the `glossary <../../../common/glossary.md>`__.h](h3For terminology used in this document refer to the }(h3For terminology used in this document refer to the hhhhhNhNubhJ)}(h*`glossary <../../../common/glossary.md>`__h]hglossary}(hglossaryhj hhhNhNubah}(h!]h#]h%]h']h)]namej h\../../../common/glossary.mduh+hIhhubh.}(h.hhhhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hK,hhhhubeh}(h!]terminologyah#]h%]terminologyah']h)]uh+h
hh-hhhh,hK*ubeh}(h!]introductionah#]h%]introductionah']h)]uh+h
hhhhhh,hKubh)}(hhh](h)}(h
Principlesh]h
Principles}(hj8 hj6 hhhNhNubah}(h!]h#]h%]h']h)]uh+hhj3 hhhh,hK/ubh?)}(hmThis Reference Architecture conforms with the principles defined `here <../../../common/chapter00.md#2.0>`__.h](hAThis Reference Architecture conforms with the principles defined }(hAThis Reference Architecture conforms with the principles defined hjD hhhNhNubhJ)}(h+`here <../../../common/chapter00.md#2.0>`__h]hhere}(hherehjM hhhNhNubah}(h!]h#]h%]h']h)]namejU h\ ../../../common/chapter00.md#2.0uh+hIhjD ubh.}(hj hjD hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hK1hj3 hhubh)}(hhh](h)}(hCloud Native Principlesh]hCloud Native Principles}(hjm hjk hhhNhNubah}(h!]h#]h%]h']h)]uh+hhjh hhhh,hK4ubh?)}(hThe definition for Cloud Native is somewhat controversial. For the purposes of this document, the CNCF TOC's (Technical
Oversight Committee) definition of Cloud Native will be used:h]hThe definition for Cloud Native is somewhat controversial. For the purposes of this document, the CNCF TOC’s (Technical
Oversight Committee) definition of Cloud Native will be used:}(hj{ hjy hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK6hjh hhubh block_quote)}(hhh]h?)}(h=CNCF Cloud Native Definition v1.0
Approved by TOC: 2018-06-11h]h=CNCF Cloud Native Definition v1.0
Approved by TOC: 2018-06-11}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK9hj ubah}(h!]h#]h%]h']h)]uh+j hjh hhhh,hNubh comment)}(hhh]h}(h!]h#]h%]h']h)] xml:spacepreserveuh+j hjh hhhh,hK