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,hK hh-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,hKubh?)}(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,hKhhhhubeh}(h!]terminologyah#]h%]terminologyah']h)]uh+h
hh-hhhh,hKubeh}(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,hKubh?)}(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,hKhj3 hhubh)}(hhh](h)}(hCloud Native Principlesh]hCloud Native Principles}(hjm hjk hhhNhNubah}(h!]h#]h%]h']h)]uh+hhjh hhhh,hKubh?)}(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,hKhjh 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,hKhj 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!ubj )}(hhh](h?)}(hX0 “Cloud native technologies empower organizations to build and run **scalable** applications in modern, **dynamic environments** such as public, private, and hybrid clouds. Containers, **service meshes**, **microservices**, **immutable infrastructure**, and **declarative APIs** exemplify this approach.h](hD“Cloud native technologies empower organizations to build and run }(hD“Cloud native technologies empower organizations to build and run hj hhhNhNubh strong)}(h**scalable**h]hscalable}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh applications in modern, }(h applications in modern, hj hhhNhNubj )}(h**dynamic environments**h]hdynamic environments}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh9 such as public, private, and hybrid clouds. Containers, }(h9 such as public, private, and hybrid clouds. Containers, hj hhhNhNubj )}(h**service meshes**h]hservice meshes}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh, }(h, hj hhhNhNubj )}(h**microservices**h]h
microservices}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh, }(hj hj ubj )}(h**immutable infrastructure**h]himmutable infrastructure}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh, and }(h, and hj hhhNhNubj )}(h**declarative APIs**h]hdeclarative APIs}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh exemplify this approach.}(h exemplify this approach.hj hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hK#hj ubh?)}(hThese techniques enable **loosely coupled** systems that are **resilient**, **manageable**, and **observable**. Combined with **robust automation**, they allow engineers to make **high-impact changes frequently and predictably** with minimal toil.h](hThese techniques enable }(hThese techniques enable hj2 hhhNhNubj )}(h**loosely coupled**h]hloosely coupled}(hhhj; hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj2 ubh systems that are }(h systems that are hj2 hhhNhNubj )}(h
**resilient**h]h resilient}(hhhjN hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj2 ubh, }(h, hj2 hhhNhNubj )}(h**manageable**h]h
manageable}(hhhja hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj2 ubh, and }(h, and hj2 hhhNhNubj )}(h**observable**h]h
observable}(hhhjt hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj2 ubh. Combined with }(h. Combined with hj2 hhhNhNubj )}(h**robust automation**h]hrobust automation}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj2 ubh, they allow engineers to make }(h, they allow engineers to make hj2 hhhNhNubj )}(h2**high-impact changes frequently and predictably**h]h.high-impact changes frequently and predictably}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj2 ubh with minimal toil.}(h with minimal toil.hj2 hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hK%hj ubeh}(h!]h#]h%]h']h)]uh+j hjh hhhh,hNubj )}(hhh]h}(h!]h#]h%]h']h)]j j uh+j hjh hhhh,hK'ubj )}(hhh]h?)}(hThe Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.”h]hThe Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.”}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK)hj ubah}(h!]h#]h%]h']h)]uh+j hjh hhhh,hNubh?)}(hX Individual contributors who are also active in the CNCF TUG (Telecom User Group), formed in June 2019, are also working on a set of Cloud Native Principles that are more suited to the requirements of the Telecom community and with more detail than the existing CNCF definition: `Expanded Cloud Native Principles `__. There are many similarities, but the key principles from both, which are applicable to this document, are:h](hX Individual contributors who are also active in the CNCF TUG (Telecom User Group), formed in June 2019, are also working on a set of Cloud Native Principles that are more suited to the requirements of the Telecom community and with more detail than the existing CNCF definition: }(hX Individual contributors who are also active in the CNCF TUG (Telecom User Group), formed in June 2019, are also working on a set of Cloud Native Principles that are more suited to the requirements of the Telecom community and with more detail than the existing CNCF definition: hj hhhNhNubhJ)}(hm`Expanded Cloud Native Principles `__h]h Expanded Cloud Native Principles}(h Expanded Cloud Native Principleshj hhhNhNubah}(h!]h#]h%]h']h)]name Expanded Cloud Native Principlesh\Fhttps://networking.cloud-native-principles.org/cloud-native-principlesuh+hIhj ubhl. There are many similarities, but the key principles from both, which are applicable to this document, are:}(hl. There are many similarities, but the key principles from both, which are applicable to this document, are:hj hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hK+hjh hhubh bullet_list)}(hhh](h list_item)}(h**scalable**h]h?)}(hj h]j )}(hj h]hscalable}(hhhj
hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj
ubah}(h!]h#]h%]h']h)]uh+h>hh,hK-hj ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**dynamic environments**h]h?)}(hj( h]j )}(hj( h]hdynamic environments}(hhhj- hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj* ubah}(h!]h#]h%]h']h)]uh+h>hh,hK.hj& ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**service meshes**h]h?)}(hjH h]j )}(hjH h]hservice meshes}(hhhjM hhhNhNubah}(h!]h#]h%]h']h)]uh+j hjJ ubah}(h!]h#]h%]h']h)]uh+h>hh,hK/hjF ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**microservices**h]h?)}(hjh h]j )}(hjh h]h
microservices}(hhhjm hhhNhNubah}(h!]h#]h%]h']h)]uh+j hjj ubah}(h!]h#]h%]h']h)]uh+h>hh,hK0hjf ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**immutable infrastructure**h]h?)}(hj h]j )}(hj h]himmutable infrastructure}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubah}(h!]h#]h%]h']h)]uh+h>hh,hK1hj ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**declarative APIs**h]h?)}(hj h]j )}(hj h]hdeclarative APIs}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubah}(h!]h#]h%]h']h)]uh+h>hh,hK2hj ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**loosely coupled**h]h?)}(hj h]j )}(hj h]hloosely coupled}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubah}(h!]h#]h%]h']h)]uh+h>hh,hK3hj ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h
**resilient**h]h?)}(hj h]j )}(hj h]h resilient}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubah}(h!]h#]h%]h']h)]uh+h>hh,hK4hj ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**manageable**h]h?)}(hj h]j )}(hj h]h
manageable}(hhhj
hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj
ubah}(h!]h#]h%]h']h)]uh+h>hh,hK5hj ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**observable**h]h?)}(hj( h]j )}(hj( h]h
observable}(hhhj- hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj* ubah}(h!]h#]h%]h']h)]uh+h>hh,hK6hj& ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h**robust automation**h]h?)}(hjH h]j )}(hjH h]hrobust automation}(hhhjM hhhNhNubah}(h!]h#]h%]h']h)]uh+j hjJ ubah}(h!]h#]h%]h']h)]uh+h>hh,hK7hjF ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubj )}(h3**high-impact changes frequently and predictably**
h]h?)}(h2**high-impact changes frequently and predictably**h]j )}(hjl h]h.high-impact changes frequently and predictably}(hhhjn hhhNhNubah}(h!]h#]h%]h']h)]uh+j hjj ubah}(h!]h#]h%]h']h)]uh+h>hh,hK8hjf ubah}(h!]h#]h%]h']h)]uh+j hj hhhh,hNubeh}(h!]h#]h%]h']h)]bullet-uh+j hh,hK-hjh hhubeh}(h!]cloud-native-principlesah#]h%]cloud native principlesah']h)]uh+h
hj3 hhhh,hKubh)}(hhh](h)}(h
Exceptionsh]h
Exceptions}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+hhj hhhh,hK;ubh?)}(hX Anuket specification define certain policies and `principles <../../../common/chapter00.md#2.0>`__ and strives to coalesce the industry towards conformant Cloud Infrastructure technologies and configurations. With the currently available technology options, incompatibilities, performance and operator constraints (including costs), these policies and principles may not always be achievable and, thus, require an exception process. These policies describe how to handle `non-conforming technologies <../../../common/policies.md#cntt-policies-for-managing-non-conforming-technologies>`__. In general, non-conformance with policies is handled through a set of exceptions (please also see `Exception Types <../../../gov/chapters/chapter09.md#exception-types>`__).h](h1Anuket specification define certain policies and }(h1Anuket specification define certain policies and hj hhhNhNubhJ)}(h1`principles <../../../common/chapter00.md#2.0>`__h]h
principles}(h
principleshj hhhNhNubah}(h!]h#]h%]h']h)]namej h\ ../../../common/chapter00.md#2.0uh+hIhj ubhXu and strives to coalesce the industry towards conformant Cloud Infrastructure technologies and configurations. With the currently available technology options, incompatibilities, performance and operator constraints (including costs), these policies and principles may not always be achievable and, thus, require an exception process. These policies describe how to handle }(hXu and strives to coalesce the industry towards conformant Cloud Infrastructure technologies and configurations. With the currently available technology options, incompatibilities, performance and operator constraints (including costs), these policies and principles may not always be achievable and, thus, require an exception process. These policies describe how to handle hj hhhNhNubhJ)}(ht`non-conforming technologies <../../../common/policies.md#cntt-policies-for-managing-non-conforming-technologies>`__h]hnon-conforming technologies}(hnon-conforming technologieshj hhhNhNubah}(h!]h#]h%]h']h)]namenon-conforming technologiesh\R../../../common/policies.md#cntt-policies-for-managing-non-conforming-technologiesuh+hIhj ubhd. In general, non-conformance with policies is handled through a set of exceptions (please also see }(hd. In general, non-conformance with policies is handled through a set of exceptions (please also see hj hhhNhNubhJ)}(hH`Exception Types <../../../gov/chapters/chapter09.md#exception-types>`__h]hException Types}(hException Typeshj hhhNhNubah}(h!]h#]h%]h']h)]nameException Typesh\2../../../gov/chapters/chapter09.md#exception-typesuh+hIhj ubh).}(h).hj hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hK=hj hhubh?)}(hX The following sub-sections list the exceptions to the principles of Anuket specifications and shall be updated whenever technology choices, versions and requirements change. The Exceptions have an associated period of validity and this period shall include time for transitioning.h]hX The following sub-sections list the exceptions to the principles of Anuket specifications and shall be updated whenever technology choices, versions and requirements change. The Exceptions have an associated period of validity and this period shall include time for transitioning.}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK?hj hhubh)}(hhh](h)}(hTechnology Exceptionsh]hTechnology Exceptions}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+hhj hhhh,hKBubh?)}(hThe list of Technology Exceptions will be updated or removed when alternative technologies, aligned with the principles of Anuket specifications, develop and mature.h]hThe list of Technology Exceptions will be updated or removed when alternative technologies, aligned with the principles of Anuket specifications, develop and mature.}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKDhj hhubh table)}(hhh]h tgroup)}(hhh](h colspec)}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj/ ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj/ ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKNuh+j2 hj/ ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj/ ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthMuh+j2 hj/ ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj/ ubh thead)}(hhh]h row)}(hhh](h entry)}(hhh]h?)}(hRefh]hRef}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKGhj| ubah}(h!]h#]h%]h']h)]uh+jz hjw ubj{ )}(hhh]h?)}(hNameh]hName}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKGhj ubah}(h!]h#]h%]h']h)]uh+jz hjw ubj{ )}(hhh]h?)}(hDescriptionh]hDescription}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKGhj ubah}(h!]h#]h%]h']h)]uh+jz hjw ubj{ )}(hhh]h?)}(hValid Untilh]hValid Until}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKGhj ubah}(h!]h#]h%]h']h)]uh+jz hjw ubj{ )}(hhh]h?)}(h Rationaleh]h Rationale}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKGhj ubah}(h!]h#]h%]h']h)]uh+jz hjw ubj{ )}(hhh]h?)}(hImplicationh]hImplication}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKGhj ubah}(h!]h#]h%]h']h)]uh+jz hjw ubeh}(h!]h#]h%]h']h)]uh+ju hjr ubah}(h!]h#]h%]h']h)]uh+jp hj/ ubh tbody)}(hhh]jv )}(hhh](j{ )}(hhh]h?)}(hra2.exc.tec.001h]hra2.exc.tec.001}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKIhj ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hSR-IOVh]hSR-IOV}(hj6 hj4 hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKIhj1 ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hNThis exception allows workloads to use SR-IOV over PCI-PassThrough technology.h]hNThis exception allows workloads to use SR-IOV over PCI-PassThrough technology.}(hjM hjK hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKIhjH ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hTBDh]hTBD}(hjd hjb hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKIhj_ ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hX Emulation of virtual devices for each virtual machine creates an I/O bottleneck resulting in poor performance and limits the number of virtual machines a physical server can support. SR-IOV implements virtual devices in hardware, and by avoiding the use of a switch, near maximal performance can be achieved. For containerisation the downsides of creating dependencies on hardware is reduced as Kubernetes nodes are either physical, or if virtual have no need to "live migrate" as a VNF VM might.h]hX Emulation of virtual devices for each virtual machine creates an I/O bottleneck resulting in poor performance and limits the number of virtual machines a physical server can support. SR-IOV implements virtual devices in hardware, and by avoiding the use of a switch, near maximal performance can be achieved. For containerisation the downsides of creating dependencies on hardware is reduced as Kubernetes nodes are either physical, or if virtual have no need to “live migrate” as a VNF VM might.}(hj{ hjy hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKIhjv ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h}(h!]h#]h%]h']h)]uh+jz hj ubeh}(h!]h#]h%]h']h)]uh+ju hj ubah}(h!]h#]h%]h']h)]uh+j hj/ ubeh}(h!]h#]h%]h']h)]colsKuh+j- hj* ubah}(h!]h#]h%]h']h)]uh+j( hj hhhh,hNubeh}(h!]technology-exceptionsah#]h%]technology exceptionsah']h)]uh+h
hj hhhh,hKBubh)}(hhh](h)}(hRequirements Exceptionsh]hRequirements Exceptions}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+hhj hhhh,hKMubh?)}(hX9 The Requirements Exceptions lists the Reference Model (RM) requirements and/or Reference Architecture (RA) requirements that will be either waived or be only partially implemented in this version of the RA. The exception list will be updated to allow for a period of transitioning as and when requirements change.h]hX9 The Requirements Exceptions lists the Reference Model (RM) requirements and/or Reference Architecture (RA) requirements that will be either waived or be only partially implemented in this version of the RA. The exception list will be updated to allow for a period of transitioning as and when requirements change.}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKOhj hhubj) )}(hhh]j. )}(hhh](j3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthK uh+j2 hj ubj3 )}(hhh]h}(h!]h#]h%]h']h)]colwidthKuh+j2 hj ubjq )}(hhh]jv )}(hhh](j{ )}(hhh]h?)}(hRefh]hRef}(hj# hj! hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKRhj ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hNameh]hName}(hj: hj8 hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKRhj5 ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hDescriptionh]hDescription}(hjQ hjO hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKRhjL ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hValid Untilh]hValid Until}(hjh hjf hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKRhjc ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(h Rationaleh]h Rationale}(hj hj} hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKRhjz ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hImplicationh]hImplication}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKRhj ubah}(h!]h#]h%]h']h)]uh+jz hj ubeh}(h!]h#]h%]h']h)]uh+ju hj ubah}(h!]h#]h%]h']h)]uh+jp hj ubj )}(hhh]jv )}(hhh](j{ )}(hhh]h?)}(hra1.exc.req.001h]hra1.exc.req.001}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKThj ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hRequirementh]hRequirement}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKThj ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hxxxh]hxxx}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKThj ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h?)}(hxxxxxxxxxxxxx.h]hxxxxxxxxxxxxx.}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKThj ubah}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h}(h!]h#]h%]h']h)]uh+jz hj ubj{ )}(hhh]h}(h!]h#]h%]h']h)]uh+jz hj ubeh}(h!]h#]h%]h']h)]uh+ju hj ubah}(h!]h#]h%]h']h)]uh+j hj ubeh}(h!]h#]h%]h']h)]colsKuh+j- hj ubah}(h!]h#]h%]h']h)]uh+j( hj hhhh,hNubeh}(h!]requirements-exceptionsah#]h%]requirements exceptionsah']h)]uh+h
hj hhhh,hKMubeh}(h!]
exceptionsah#]h%]
exceptionsah']h)]uh+h
hj3 hhhh,hK;ubeh}(h!]
principlesah#]h%]
principlesah']h)]uh+h
hhhhhh,hKubh)}(hhh](h)}(hScopeh]hScope}(hj^ hj\ hhhNhNubah}(h!]h#]h%]h']h)]uh+hhjY hhhh,hKXubh?)}(hThe scope of this particular Reference Architecture can be described as follows (the capabilities themselves will be listed and described in subsequent chapters), also shown in Figure 1-1:h]hThe scope of this particular Reference Architecture can be described as follows (the capabilities themselves will be listed and described in subsequent chapters), also shown in Figure 1-1:}(hjl hjj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKZhjY hhubj )}(hhh](j )}(hOKubernetes capabilities required to conform to the Reference Model requirementsh]h?)}(hj} h]hOKubernetes capabilities required to conform to the Reference Model requirements}(hj} hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK\hj{ ubah}(h!]h#]h%]h']h)]uh+j hjx hhhh,hNubj )}(h2Support for CNFs that consist wholly of containersh]h?)}(hj h]h2Support for CNFs that consist wholly of containers}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK]hj ubah}(h!]h#]h%]h']h)]uh+j hjx hhhh,hNubj )}(hvSupport for CNFs that consist partly of containers and partly of VMs, both of which will be orchestrated by Kubernetesh]h?)}(hj h]hvSupport for CNFs that consist partly of containers and partly of VMs, both of which will be orchestrated by Kubernetes}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hK^hj ubah}(h!]h#]h%]h']h)]uh+j hjx hhhh,hNubj )}(hX **Kubernetes Cluster lifecycle management**: including Cluster creation/upgrade/scaling/deletion, and node customisation due to workload requirements. **Note**: *detailed requirements and component specification of cluster LCM are out of scope for this release.*
h]h?)}(hX **Kubernetes Cluster lifecycle management**: including Cluster creation/upgrade/scaling/deletion, and node customisation due to workload requirements. **Note**: *detailed requirements and component specification of cluster LCM are out of scope for this release.*h](j )}(h+**Kubernetes Cluster lifecycle management**h]h'Kubernetes Cluster lifecycle management}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubhl: including Cluster creation/upgrade/scaling/deletion, and node customisation due to workload requirements. }(hl: including Cluster creation/upgrade/scaling/deletion, and node customisation due to workload requirements. hj hhhNhNubj )}(h**Note**h]hNote}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh: }(h: hj hhhNhNubh emphasis)}(he*detailed requirements and component specification of cluster LCM are out of scope for this release.*h]hcdetailed requirements and component specification of cluster LCM are out of scope for this release.}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubeh}(h!]h#]h%]h']h)]uh+h>hh,hK_hj ubah}(h!]h#]h%]h']h)]uh+j hjx hhhh,hNubeh}(h!]h#]h%]h']h)]j j uh+j hh,hK\hjY hhubh?)}(h4The following items are considered **out of scope**:h](h#The following items are considered }(h#The following items are considered hj hhhNhNubj )}(h**out of scope**h]hout of scope}(hhhj hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj ubh:}(h:hj hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hKahjY hhubj )}(hhh]j )}(hXg **Kubernetes-based Application / VNF Management**: similar to VNFM, this is an application layer capability that is out of scope of Anuket. This includes Kubernetes-based Application Package Management, such as Helm, as this is a client application and set of libraries that would be part of a modern/cloud native VNFM, not part of the infrastructure itself.
h]h?)}(hXf **Kubernetes-based Application / VNF Management**: similar to VNFM, this is an application layer capability that is out of scope of Anuket. This includes Kubernetes-based Application Package Management, such as Helm, as this is a client application and set of libraries that would be part of a modern/cloud native VNFM, not part of the infrastructure itself.h](j )}(h1**Kubernetes-based Application / VNF Management**h]h-Kubernetes-based Application / VNF Management}(hhhj= hhhNhNubah}(h!]h#]h%]h']h)]uh+j hj9 ubhX5 : similar to VNFM, this is an application layer capability that is out of scope of Anuket. This includes Kubernetes-based Application Package Management, such as Helm, as this is a client application and set of libraries that would be part of a modern/cloud native VNFM, not part of the infrastructure itself.}(hX5 : similar to VNFM, this is an application layer capability that is out of scope of Anuket. This includes Kubernetes-based Application Package Management, such as Helm, as this is a client application and set of libraries that would be part of a modern/cloud native VNFM, not part of the infrastructure itself.hj9 hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hKchj5 ubah}(h!]h#]h%]h']h)]uh+j hj2 hhhh,hNubah}(h!]h#]h%]h']h)]j j uh+j hh,hKchjY hhubh image)}(hj.. image:: ../figures/ch01_scope_k8s.png
:alt: "Figure 1-1:: Kubernetes Reference Architecture scope"
h]h}(h!]h#]h%]h']h)]alt6"Figure 1-1:: Kubernetes Reference Architecture scope"urifigures/ch01_scope_k8s.png
candidates}*jq suh+jb hjY hhhh,hNubh?)}(h8**Figure 1-1:**: Kubernetes Reference Architecture scopeh](j )}(h**Figure 1-1:**h]hFigure 1-1:}(hhhjy hhhNhNubah}(h!]h#]h%]h']h)]uh+j hju ubh): Kubernetes Reference Architecture scope}(h): Kubernetes Reference Architecture scopehju hhhNhNubeh}(h!]h#]h%]h']h)]uh+h>hh,hKihjY hhubeh}(h!]scopeah#]h%]scopeah']h)]uh+h
hhhhhh,hKXubh)}(hhh](h)}(hApproachh]hApproach}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+hhj hhhh,hKlubh?)}(hXS The approach taken in this Reference Architecture is to start as simply as possible (i.e. with a basic Kubernetes architecture), and then add detail and additional features/extensions as is required to meet the requirements of the Reference Model and the functional and non-functional requirements of common cloud native network functions.h]hXS The approach taken in this Reference Architecture is to start as simply as possible (i.e. with a basic Kubernetes architecture), and then add detail and additional features/extensions as is required to meet the requirements of the Reference Model and the functional and non-functional requirements of common cloud native network functions.}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKnhj hhubh?)}(hX For example, while the management of VMs through Kubernetes is included, the intention is to start with the "native" control of containers and add support for VMs at a later date. The final decision will be determined and documented in the Roadmap section.h]hX For example, while the management of VMs through Kubernetes is included, the intention is to start with the “native” control of containers and add support for VMs at a later date. The final decision will be determined and documented in the Roadmap section.}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKphj hhubh?)}(hX This document will start with a description of interfaces and capabilities (the "what") before at a later date providing guidance on "how" those elements are deployed. The details of how the elements will be used together will be documented in full detail in the Reference Implementation.h]hX( This document will start with a description of interfaces and capabilities (the “what”) before at a later date providing guidance on “how” those elements are deployed. The details of how the elements will be used together will be documented in full detail in the Reference Implementation.}(hj hj hhhNhNubah}(h!]h#]h%]h']h)]uh+h>hh,hKrhj hhubeh}(h!]approachah#]h%]approachah']h)]uh+h
hhhhhh,hKlubeh}(h!]overviewah#]h%]overviewah']h)]uh+h
hhhhhh,hKubah}(h!]h#]h%]h']h)]sourceh,uh+hcurrent_sourceNcurrent_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampNsource_linkN
source_urlN
toc_backlinksjz footnote_backlinksK
sectnum_xformKstrip_commentsNstrip_elements_with_classesN
strip_classesNreport_levelK
halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj
error_encodingutf-8error_encoding_error_handlerbackslashreplace
language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid
dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh,_destinationN
_config_files]file_insertion_enabledraw_enabledKline_length_limitM'pep_referencesNpep_base_url https://www.python.org/dev/peps/pep_file_url_templatepep-%04drfc_referencesNrfc_base_urlhttps://tools.ietf.org/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlongsmart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform
docinfo_xformKsectsubtitle_xformembed_stylesheetcloak_email_addressesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j j j0 j- j( j% jV jS j j jN jK j j jF jC j j j j u nametypes}(j Nj0 Nj( NjV Nj NjN Nj NjF Nj Nj Nuh!}(j hj- h-j% hjS j3 j jh jK j j j jC j j jY j j u
footnote_refs}
citation_refs}
autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK
id_countercollectionsCounter}Rparse_messages]transform_messages]transformerNinclude_log]
decorationNhhub.