Kubernetes Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Replaced content with "=External= * https://kubernetes.io/docs/concepts/ =Internal= * Kubernetes * Docker Concepts * OpenShift Concepts =TODO= Deplete Kube...")
Line 9: Line 9:
* [[OpenShift Concepts]]
* [[OpenShift Concepts]]


=Overview=
=TODO=


Kubernetes is an Open Source orchestrator for a container environment.
Deplete [[Kubernetes Concepts TO DEPLETE]].
 
Kubernetes is an ''container orchestration platform'', offering the ability of orchestrate [[Docker_Concepts#Container|Docker containers]] across multiple hosts. Kubernetes provides the ability to specify how many hosts to deploy containers to, how many containers to deploy, how to scale them, where persistent storage resides, and how to deploy a group of containers as a unit. It manages containers in a clustered environment. In other words, it orchestrates containers at scale, defines application topologies, handles parts of the container networking and storage, manages container state and schedules containers across hosts.
 
==Declarative vs. Imperative Approach==
 
Various Kubernetes elements, such as, for example, Deployments and Replica Sets, are powered by control loops. Control loops are a design pattern for distributed software that allows declaratively defining desired state and have the software implement the desired state based on the current state
 
==API Resources==
 
All interactions with Kubernetes are interactions with '''API resources'''. A list of API resources can be obtained with:
  kubectl api-resources
 
=Cluster=
 
=Master=
 
The master node includes:
* the API server
* etcd instance
* the scheduler
* controllers
 
{{Internal|OpenShift Concepts#Master|OpenShift Master}}
 
=Node=
 
{{Internal|OpenShift Concepts#Node|OpenShift Node}}
 
=Pod=
 
A pod is analogous to a VM. It consists in a group of containers sharing network and storage. It is implemented as a [[Docker_Concepts#Pause_Container|pause container]]. A pod can be defined in a YAML file.
 
{{Internal|OpenShift Pod Concepts#Overview|OpenShift Pod Concepts}}
 
==Pod Operations==
 
{{Internal|Kubernetes_Operations#Pod_Operations|Pod Operations}}
 
=Service=
 
=Label=
{{Internal|OpenShift Concepts#Label|OpenShift Label}}
 
=Selector=
{{Internal|OpenShift Concepts#Selector|OpenShift Selector}}
 
=kubelet=
 
<tt>kubelet</tt> is the Kubernetes node agent.
 
=kubectl=
 
<tt>kubectl</tt> is the Kubernetes main command-line tool. {{Internal|kubectl|kubectl}}
 
=Context=
 
==Curent Context==
 
The current context can be obtained with <tt>[[Kubectl#current-context|kubectl config current-context]]</tt>.
 
=Namespace=
 
{{External|[https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ Kubernetes Concepts - Namespaces]}}
 
A namespace provides scope for:
* named resources to avoid naming collisions
* delegating management authority to trusted users
* the ability to limit community resource consumption
 
{{Internal|OpenShift Concepts#Projects|OpenShift Project}}
 
==Namespace Operations==
{{Internal|Kubernetes_Operations#Namespace_Operations|Namespace Operations}}
 
=Deployment=
 
{{Internal|Kubernetes Deployment|Deployment}}
 
=DaemonSet=
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
 
 
 
 
 
 
 
 
 
<font color=darkgray>
 
=Storage=
 
==Persistent Volume==
 
{{External|https://kubernetes.io/docs/concepts/storage/persistent-volumes/}}
 
Represented by a <tt>PersistentVolume</tt> object. It is associated with a project.
 
An administrator provision persistent volumes from sources such as:
* NFS
* GCE Persistent Disks
* ESB Volumes
* GlusterFS
* OpenStack Cinder
* Ceph RBD
* iSCSI
* Fiber Channel
 
Storage resources are requested by laying a claim to the resource (<tt>PersistentVolumeClaim</tt>). A persistent volume claim is a request for a resource with a specific attributes. When a request is made, a process matches it to an available volume and binds them together. The runtime finds the volume bound to the claim and mounts it into the pod.
 
Persistent volumes can be recycled after use. The reclamation policy is based on the "persistentVolumeReclaimPolicy" declared in the PersistentVolume object definition. The policy can be "Retain" or "Recycle".
 
{{Internal|OpenShift Concepts#Persistent_Volume|OpenShift Persistent Volume}}
 
=etcd=
 
A distributed key/value datastore for state within the environment.
 
{{Internal|Etcd Concepts#Overview|etcd}}
 
=Scheduler=
 
{{Internal|OpenShift Concepts#Scheduler|OpenShift Scheduler}}
 
=Policies=
 
Policies are rules that specify which users can and cannot specify actions on objects ([[#Pods|pods]], [[#Service|services]], etc.).
 
{{Internal|OpenShift_Security_Concepts#Policy|OpenShift Policies}}
 
=Service=
 
{{External|https://docs.openshift.com/container-platform/3.5/architecture/core_concepts/pods_and_services.html#services}}
 
{{Internal|OpenShift Concepts#Service|OpenShift Service}}
{{Internal|OpenShift_Concepts#Relationship_between_Service_and_Router|Relationship between a Service and an OpenShift Router}}
 
==Service Definition File==
 
{{Internal|Service Definition File|Service Definition File}}
 
=API=
 
{{Internal|OpenShift Concepts#API|OpenShift API}}
 
 
=Replica=
 
A replica is a set of [[#Pod|pods]] sharing the same definition.
 
=Replication Controller=
 
{{Internal|OpenShift Concepts#Replication_Controller|OpenShift Replication Controller}}
 
==Replication Controller Definition File==
 
{{Internal|Replication Controller Definition File|Replication Controller Definition File}}
 
 
</font>

Revision as of 21:43, 10 August 2019