واژهنامه
This glossary is intended to be a comprehensive, standardized list of Kubernetes terminology. It includes technical terms that are specific to Kubernetes, as well as more general terms that provide useful context.
Filter terms according to their tags
Click on the [+] indicators below to get a longer explanation for any particular term.
-
اپلیکیشنی که قابلیتهای کوبرنتیز را از طریق رابط RESTful ارائه میدهد و وضعیت کلاستر را ذخیره میکند.
[+]منابع کوبرنتیز و «رکورد های هدف» همگی بهصورت آبجکتهای API ذخیره میشوند و از طریق فراخوانیهای RESTful به API تغییر داده میشوند. API این امکان را فراهم میکند که پیکربندی بهصورت اعلانی (declarative) مدیریت شود. کاربران میتوانند مستقیما با API کوبرنتیز تعامل کنند یا از ابزارهایی مانند
kubectlاستفاده کنند. هستهی API کوبرنتیز انعطافپذیر است و میتوان آن را برای پشتیبانی از منابع سفارشی نیز گسترش داد. -
cAdvisor (Container Advisor) به کاربران کانتینر درکی از میزان استفاده از منابع و ویژگیهای عملکرد سیستم عامل در حال اجرا ارائه میدهد.
[+]این یک دیمون (daemon) در حال اجرا است که اطلاعات مربوط به کانتینرهای در حال اجرا را جمعآوری، تجمیع، پردازش و صادر میکند. به طور خاص، برای هر کانتینر، پارامترهای جداسازی منابع، میزان استفاده از منابع در گذشته، histogramهای میزان استفاده از منابع در گذشته و آمار شبکه را نگه میدارد. این دادهها به ازای هر کانتینر و هم در سطح کل ماشین صادر میشوند.
-
گروهی از پروسههای لینوکس با قابلیت های اختیاری جداسازی منابع، حسابداری و تعیین محدودیتها.
[+]cgroup یک ویژگی هسته لینوکس است که میزان استفاده از منابع (پردازنده، حافظه، ورودی/خروجی دیسک، شبکه) را برای مجموعهای از پروسهها محدود، محاسبه و ایزوله میکند.
-
CIDR (مسیریابی بین دامنهای بدون کلاس - Classless Inter-Domain Routing) یک نمادگذاری برای توصیف بلوکهای آدرسهای IP است و به طور گسترده در پیکربندیهای مختلف شبکه استفاده میشود.
[+]در زمینه کوبرنتیز، به هر گره (Node) از طریق آدرس شروع و یک ماسک زیرشبکه با استفاده از CIDR، طیفی از آدرسهای IP اختصاص داده میشود. این به گرهها اجازه میدهد تا به هر پاد یک آدرس IP منحصر به فرد اختصاص دهند. اگرچه در ابتدا مفهومی برای IPv4 بود، CIDR گسترش یافته و شامل IPv6 نیز میشود.
-
شرایطی که تحت آن یک مشارکتکننده به یک پروژه متنباز برای مشارکتهای خود مجوز اعطا میکند.
[+]CLA ها به حل و فصل اختلافات حقوقی مربوط به مالکیت مادی و معنوی مشارکتشده (IP) کمک می کنند.
-
The Cloud Native Computing Foundation (CNCF) builds sustainable ecosystems and fosters a community around projects that orchestrate containers as part of a microservices architecture.
Kubernetes is a CNCF project.
[+]The CNCF is a sub-foundation of the Linux Foundation. Its mission is to make cloud native computing ubiquitous.
-
Also known as: Cloud Service Provider
A business or other organization that offers a cloud computing platform.
[+]Cloud providers, sometimes called Cloud Service Providers (CSPs), offer cloud computing platforms or services.
Many cloud providers offer managed infrastructure (also called Infrastructure as a Service or IaaS). With managed infrastructure the cloud provider is responsible for servers, storage, and networking while you manage layers on top of that such as running a Kubernetes cluster.
You can also find Kubernetes as a managed service; sometimes called Platform as a Service, or PaaS. With managed Kubernetes, your cloud provider is responsible for the Kubernetes control plane as well as the nodes and the infrastructure they rely on: networking, storage, and possibly other elements such as load balancers.
-
A set of worker machines, called nodes, that run containerized applications. Every cluster has at least one worker node.
[+]The worker node(s) host the Pods that are the components of the application workload. The control plane manages the worker nodes and the Pods in the cluster. In production environments, the control plane usually runs across multiple computers and a cluster usually runs multiple nodes, providing fault-tolerance and high availability.
-
A person who designs infrastructure that involves one or more Kubernetes clusters.
[+]Cluster architects are concerned with best practices for distributed systems, for example: high availability and security.
-
The infrastructure layer provides and maintains VMs, networking, security groups and others. [+]
The infrastructure layer provides and maintains VMs, networking, security groups and others.
-
The work involved in managing a Kubernetes cluster: managing day-to-day operations, and co-ordinating upgrades.
[+]Examples of cluster operations work include: deploying new Nodes to scale the cluster; performing software upgrades; implementing security controls; adding or removing storage; configuring cluster networking; managing cluster-wide observability; and responding to events.
-
A person who configures, controls, and monitors clusters.
[+]Their primary responsibility is keeping a cluster up and running, which may involve periodic maintenance activities or upgrades.
Note:
Cluster operators are different from the Operator pattern that extends the Kubernetes API. -
A person who develops and contributes code to the Kubernetes open source codebase.
[+]They are also an active community member who participates in one or more Special Interest Groups (SIGs).
-
An API object used to store non-confidential data in key-value pairs. Pods can consume ConfigMaps as environment variables, command-line arguments, or as configuration files in a volume.
[+]A ConfigMap allows you to decouple environment-specific configuration from your container images, so that your applications are easily portable.
-
A lightweight and portable executable image that contains software and all of its dependencies.
[+]Containers decouple applications from underlying host infrastructure to make deployment easier in different cloud or OS environments, and for easier scaling. The applications that run inside containers are called containerized applications. The process of bundling these applications and their dependencies into a container image is called containerization.
-
Container environment variables are name=value pairs that provide useful information into containers running in a pod
[+]Container environment variables provide information that is required by the running containerized applications along with information about important resources to the containers. For example, file system details, information about the container itself, and other cluster resources such as service endpoints.
-
The lifecycle hooks expose events in the Container management lifecycle and let the user run code when the events occur.
[+]Two hooks are exposed to Containers: PostStart which executes immediately after a container is created and PreStop which is blocking and is called immediately before a container is terminated.
-
Container network interface (CNI) plugins are a type of Network plugin that adheres to the appc/CNI specification.
[+]- For information on Kubernetes and CNI, see Network Plugins.
-
A fundamental component that empowers Kubernetes to run containers effectively. It is responsible for managing the execution and lifecycle of containers within the Kubernetes environment.
[+]Kubernetes supports container runtimes such as containerd, CRI-O, and any other implementation of the Kubernetes CRI (Container Runtime Interface).
-
The main protocol for the communication between the kubelet and Container Runtime.
[+]The Kubernetes Container Runtime Interface (CRI) defines the main gRPC protocol for the communication between the node components kubelet and container runtime.
-
The Container Storage Interface (CSI) defines a standard interface to expose storage systems to containers.
[+]CSI allows vendors to create custom storage plugins for Kubernetes without adding them to the Kubernetes repository (out-of-tree plugins). To use a CSI driver from a storage provider, you must first deploy it to your cluster. You will then be able to create a Storage Class that uses that CSI driver.
-
Someone who donates code, documentation, or their time to help the Kubernetes project or community.
[+]Contributions include pull requests (PRs), issues, feedback, special interest groups (SIG) participation, or organizing community events.
-
The container orchestration layer that exposes the API and interfaces to define, deploy, and manage the lifecycle of containers.
[+]This layer is composed by many different components, such as (but not restricted to):
These components can be run as traditional operating system services (daemons) or as containers. The hosts running these components were historically called masters.
-
In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state.
[+]Controllers watch the shared state of your cluster through the apiserver (part of the Control Plane).
Some controllers also run inside the control plane, providing control loops that are core to Kubernetes' operations. For example: the deployment controller, the daemonset controller, the namespace controller, and the persistent volume controller (and others) all run within the kube-controller-manager.
-
A tool that lets you use OCI container runtimes with Kubernetes CRI.
[+]CRI-O is an implementation of the Container Runtime Interface (CRI) to enable using container runtimes that are compatible with the Open Container Initiative (OCI) runtime spec.
Deploying CRI-O allows Kubernetes to use any OCI-compliant runtime as the container runtime for running Pods, and to fetch OCI container images from remote registries.
-
Custom code that defines a resource to add to your Kubernetes API server without building a complete custom server.
[+]Custom Resource Definitions let you extend the Kubernetes API for your environment if the publicly supported API resources can't meet your needs.
-
The layer that provides capacity such as CPU, memory, network, and storage so that the containers can run and connect to a network. [+]
The layer that provides capacity such as CPU, memory, network, and storage so that the containers can run and connect to a network.
-
An API object that manages a replicated application, typically by running Pods with no local state.
[+]Each replica is represented by a Pod, and the Pods are distributed among the nodes of a cluster. For workloads that do require local state, consider using a StatefulSet.
-
May refer to: Application Developer, Code Contributor, or Platform Developer.
[+]This overloaded term may have different meanings depending on the context
-
One or more infrastructure resources that are directly or indirectly attached to your nodes.
[+]Devices might be commercial products like GPUs, or custom hardware like ASIC boards. Attached devices usually require device drivers that let Kubernetes Pods access the devices.
-
Device plugins run on worker Nodes and provide Pods with access to resources, such as local hardware, that require vendor-specific initialization or setup steps.
[+]Device plugins advertise resources to the kubelet, so that workload Pods can access hardware features that relate to the Node where that Pod is running. You can deploy a device plugin as a DaemonSet, or install the device plugin software directly on each target Node.
See Device Plugins for more information.
-
A category of devices in the cluster that can be used with dynamic resource allocation (DRA).
[+]Administrators or device owners use DeviceClasses to define a set of devices that can be claimed and used in workloads. Devices are claimed by creating ResourceClaims that filter for specific device parameters in a DeviceClass.
For more information, see Dynamic Resource Allocation
-
Disruptions are events that lead to one or more Pods going out of service. A disruption has consequences for workload resources, such as Deployment, that rely on the affected Pods.
[+]If you, as cluster operator, destroy a Pod that belongs to an application, Kubernetes terms that a voluntary disruption. If a Pod goes offline because of a Node failure, or an outage affecting a wider failure zone, Kubernetes terms that an involuntary disruption.
See Disruptions for more information.
-
Docker (specifically, Docker Engine) is a software technology providing operating-system-level virtualization also known as containers.
[+]Docker uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as OverlayFS and others to allow independent containers to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines (VMs).
-
The dockershim is a component of Kubernetes version 1.23 and earlier. It allows the kubelet to communicate with Docker Engine.
[+]Starting with version 1.24, dockershim has been removed from Kubernetes. For more information, see Dockershim FAQ.
-
May refer to: code in the Kubernetes ecosystem that depends upon the core Kubernetes codebase or a forked repo.
[+]- In the Kubernetes Community: Conversations often use downstream to mean the ecosystem, code, or third-party tools that rely on the core Kubernetes codebase. For example, a new feature in Kubernetes may be adopted by applications downstream to improve their functionality.
- In GitHub or git: The convention is to refer to a forked repo as downstream, whereas the source repo is considered upstream.
-
Kubernetes' mechanism to expose Pod and container field values to code running in a container.
[+]It is sometimes useful for a container to have information about itself, without needing to make changes to the container code that directly couple it to Kubernetes.
The Kubernetes downward API allows containers to consume information about themselves or their context in a Kubernetes cluster. Applications in containers can have access to that information, without the application needing to act as a client of the Kubernetes API.
There are two ways to expose Pod and container fields to a running container:
- using environment variables
- using a
downwardAPIvolume
Together, these two ways of exposing Pod and container fields are called the downward API.
-
A string value representing an amount of time.
[+]The format of a (Kubernetes) duration is based on the
time.Durationtype from the Go programming language.In Kubernetes APIs that use durations, the value is expressed as series of a non-negative integers combined with a time unit suffix. You can have more than one time quantity and the duration is the sum of those time quantities. The valid time units are "ns", "µs" (or "us"), "ms", "s", "m", and "h".
For example:
5srepresents a duration of five seconds, and1m30srepresents a duration of one minute and thirty seconds. -
Also known as: DRA
A Kubernetes feature that lets you request and share resources among Pods. These resources are often attached devices like hardware accelerators.
[+]With DRA, device drivers and cluster admins define device classes that are available to claim in workloads. Kubernetes allocates matching devices to specific claims and places the corresponding Pods on nodes that can access the allocated devices.
-
Allows users to request automatic creation of storage Volumes.
[+]Dynamic provisioning eliminates the need for cluster administrators to pre-provision storage. Instead, it automatically provisions storage by user request. Dynamic volume provisioning is based on an API object, StorageClass, referring to a Volume Plugin that provisions a Volume and the set of parameters to pass to the Volume Plugin.
-
An endpoint of a Service is one of the Pods (or external servers) that implements the Service.
[+]For Services with selectors, the EndpointSlice controller will automatically create one or more EndpointSlices giving the IP addresses of the selected endpoint Pods.
EndpointSlices can also be created manually to indicate the endpoints of Services that have no selector specified.
-
A Container type that you can temporarily run inside a Pod.
[+]If you want to investigate a Pod that's running with problems, you can add an ephemeral container to that Pod and carry out diagnostics. Ephemeral containers have no resource or scheduling guarantees, and you should not use them to run any part of the workload itself.
Ephemeral containers are not supported by static pods.
-
Consistent and highly-available key value store used as Kubernetes' backing store for all cluster data.
[+]If your Kubernetes cluster uses etcd as its backing store, make sure you have a back up plan for the data.
You can find in-depth information about etcd in the official documentation.
-
Event is a Kubernetes object that describes state change/notable occurrences in the system.
[+]Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given reason reflecting a consistent underlying trigger, or the continued existence of events with that reason.
Events should be treated as informative, best-effort, supplemental data.
In Kubernetes, auditing generates a different kind of Event record (API group
audit.k8s.io). -
Eviction is the process of terminating one or more Pods on Nodes.
[+]There are two kinds of eviction:
-
Extensions are software components that extend and deeply integrate with Kubernetes to support new types of hardware.
[+]Many cluster administrators use a hosted or distribution instance of Kubernetes. These clusters come with extensions pre-installed. As a result, most Kubernetes users will not need to install extensions and even fewer users will need to author new ones.
-
Feature gates are a set of keys (opaque string values) that you can use to control which Kubernetes features are enabled in your cluster.
[+]You can turn these features on or off using the
--feature-gatescommand line flag on each Kubernetes component. Each Kubernetes component lets you enable or disable a set of feature gates that are relevant to that component. The Kubernetes documentation lists all current feature gates and what they control. -
Finalizers are namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion. Finalizers alert controllers to clean up resources the deleted object owned.
[+]When you tell Kubernetes to delete an object that has finalizers specified for it, the Kubernetes API marks the object for deletion by populating
.metadata.deletionTimestamp, and returns a202status code (HTTP "Accepted"). The target object remains in a terminating state while the control plane, or other components, take the actions defined by the finalizers. After these actions are complete, the controller removes the relevant finalizers from the target object. When themetadata.finalizersfield is empty, Kubernetes considers the deletion complete and deletes the object.You can use finalizers to control garbage collection of resources. For example, you can define a finalizer to clean up related resources or infrastructure before the controller deletes the target resource.
-
FlexVolume is a deprecated interface for creating out-of-tree volume plugins. The Container Storage Interface is a newer interface that addresses several problems with FlexVolume.
[+]FlexVolumes enable users to write their own drivers and add support for their volumes in Kubernetes. FlexVolume driver binaries and dependencies must be installed on host machines. This requires root access. The Storage SIG suggests implementing a CSI driver if possible since it addresses the limitations with FlexVolumes.
-
Garbage collection is a collective term for the various mechanisms Kubernetes uses to clean up cluster resources.
[+]Kubernetes uses garbage collection to clean up resources like unused containers and images, failed Pods, objects owned by the targeted resource, completed Jobs, and resources that have expired or failed.
-
A family of API kinds for modeling service networking in Kubernetes.
[+]Gateway API provides a family of extensible, role-oriented, protocol-aware API kinds for modeling service networking in Kubernetes.
-
Also known as: GVR
Means of representing unique Kubernetes API resource.
[+]Group Version Resources (GVRs) specify the API group, API version, and resource (name for the object kind as it appears in the URI) associated with accessing a particular id of object in Kubernetes. GVRs let you define and distinguish different Kubernetes objects, and to specify a way of accessing objects that is stable even as APIs change.
-
A package of pre-configured Kubernetes resources that can be managed with the Helm tool.
[+]Charts provide a reproducible way of creating and sharing Kubernetes applications. A single chart can be used to deploy something simple, like a memcached Pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.
-
Also known as: HPA
An API resource that automatically scales the number of Pod replicas based on targeted CPU utilization or custom metric targets.
[+]HPA is typically used with ReplicationControllers, Deployments, or ReplicaSets. It cannot be applied to objects that cannot be scaled, for example DaemonSets.
-
A HostAliases is a mapping between the IP address and hostname to be injected into a Pod's hosts file.
[+]HostAliases is an optional list of hostnames and IP addresses that will be injected into the Pod's hosts file if specified. This is only valid for non-hostNetwork Pods.
-
Stored instance of a Container that holds a set of software needed to run an application.
[+]A way of packaging software that allows it to be stored in a container registry, pulled to a local system, and run as an application. Meta data is included in the image that can indicate what executable to run, who built it, and other information.
-
Immutable Infrastructure refers to computer infrastructure (virtual machines, containers, network appliances) that cannot be changed once deployed.
[+]Immutability can be enforced by an automated process that overwrites unauthorized changes or through a system that won’t allow changes in the first place. Containers are a good example of immutable infrastructure because persistent changes to containers can only be made by creating a new version of the container or recreating the existing container from its image.
By preventing or identifying unauthorized changes, immutable infrastructures make it easier to identify and mitigate security risks. Operating such a system becomes a lot more straightforward because administrators can make assumptions about it. After all, they know no one made mistakes or changes they forgot to communicate. Immutable infrastructure goes hand-in-hand with infrastructure as code where all automation needed to create infrastructure is stored in version control (such as Git). This combination of immutability and version control means that there is a durable audit log of every authorized change to a system.
-
An API object that manages external access to the services in a cluster, typically HTTP.
[+]Ingress may provide load balancing, SSL termination and name-based virtual hosting.
-
یک پلتفرم متنباز (مختص کوبرنتیز نیست) که روشی یکنواخت برای یکپارچهسازی میکروسرویسها، مدیریت جریان ترافیک، اعمال سیاستها (Policy) و تجمیع دادههای تلهمتری فراهم میکند.
[+]افزودن Istio نیازمند تغییر کد برنامه نیست. Istio یک لایهی زیرساختی میان سرویس و شبکه است که وقتی با استقرارهای سرویس ترکیب شود، معمولا مش سرویس (Service Mesh) نامیده میشود. کنترل پلین Istio جزئیات پلتفرم مدیریت کلاستر زیرین، که میتواند کوبرنتیز یا Mesosphere و … باشد، را انتزاع میکند.
-
[+]kOpsنهتنها به شما در ایجاد، حذف، ارتقا و نگهداری کلاستر کوبرنتیز در سطح تولید و با دسترسپذیری بالا کمک میکند، بلکه زیرساخت ابری لازم را نیز فراهم میسازد.Note:
در حال حاضر AWS (Amazon Web Services) بهصورت رسمی پشتیبانی میشود؛ DigitalOcean، GCE و OpenStack در مرحلهی بتا و Azure در مرحلهی آلفا هستند.kOpsیک سامانه تهیهسازی خودکار (provisioning) است:- نصب کاملا خودکار
- استفاده از DNS برای شناسایی کلاسترها
- خودترمیمی: همهچیز در Auto Scaling Groupها اجرا میشود
- پشتیبانی از چندین سیستمعامل (Amazon Linux، Debian، Flatcar، RHEL، Rocky و Ubuntu)
- پشتیبانی از دسترسپذیری بالا (High-Availability)
- امکان تهیهسازی مستقیم یا تولید مانیفستهای Terraform
-
kube-proxy یک پروکسی شبکه است که روی هر گره (node) در کلاستر شما اجرا میشود و بخشی از مفهوم سرویس (Service) در کوبرنتیز را پیادهسازی میکند.
[+]kube-proxy قوانین شبکه را روی گرهها نگهداری میکند. این قوانین شبکه به نشستهای شبکهی داخل یا خارج کلاستر اجازه میدهند با پادهای شما ارتباط شبکهای برقرار کنند.
اگر لایهی فیلترکردن بسته در سیستمعامل وجود داشته و در دسترس باشد، kube-proxy از آن استفاده میکند؛ در غیر این صورت، خود kube-proxy ترافیک را فوروارد میکند.
-
جزء کنترل پلین که پادهای تازهساختهشدهی بدون گره اختصاص شده را رصد میکند و یک گره را برای اجرای آنها اتخاب میکند.
[+]عواملی که در تصمیمهای scheduling در نظر گرفته میشوند شامل اینها هستند: نیازهای منابع بهصورت فردی و جمعی، محدودیتهای سختافزاری/نرمافزاری/سیاستی، مشخصات Affinity (وابستگی) و Anti-Affinity (ضدوابستگی)، محلیبودن داده، تداخل بین ورکلودها، و ضربالاجلها.
-
ابزاری برای نصب سریع کوبرنتیز و راهاندازی یک کلاستر امن.
[+]میتوانید از kubeadm برای نصب اجزای کنترل پلین و همچنین اجزای گره worker استفاده کنید.
-
Also known as: kubectl
ابزار خط فرمانی برای برقراری ارتباط با کنترل پلین کلاستر کوبرنتیز، با استفاده از API کوبرنتیز.
[+]میتوانید با
kubectlآبجکتهای کوبرنتیز را ایجاد، بازبینی، بهروزرسانی و حذف کنید. -
عاملی که روی هر گره در کلاستر اجرا میشود. این عامل اطمینان میدهد کانتینرها در یک پاد در حال اجرا باشند.
[+]kubelet مجموعهای از PodSpecها را که از طریق سازوکارهای مختلف به آن ارائه میشوند دریافت میکند و تضمین میکند کانتینرهای توصیفشده در آن PodSpecها در حال اجرا و سالم باشند. kubelet کانتینرهایی را که توسط کوبرنتیز ایجاد نشدهاند مدیریت نمیکند.
-
اصطلاحی قدیمی که بهعنوان مترادف گره هایی بهکار میرود که کنترل پلین را میزبانی میکنند.
[+]این اصطلاح هنوز توسط برخی ابزارهای فراهم سازی (Provisioning)، مانند kubeadm، و سرویسهای مدیریتشده استفاده میشود تا با کلید
kubernetes.io/roleبه گرهها لیبل بزنند و محل استقرار پادهای کنترل پلین را کنترل کنند. -
ابزاری برای اجرای کوبرنتیز بهصورت محلی.
[+]Minikube یک کلاستر محلی کوبرنتیز را بهصورت یکپارچه (all-in-one) یا چندگرهای داخل یک ماشین مجازی (VM) روی رایانۀ شما اجرا میکند. میتوانید از Minikube برای آزمایش کوبرنتیز در یک محیط آموزشی استفاده کنید.
-
یک انتزاع که کوبرنتیز برای پشتیبانی از جداسازی گروههایی از منابع در یک کلاستر واحد از آن استفاده میکند.
[+]نیماسپیسها برای سازماندهی آبجکتها در یک کلاستر استفاده میشوند و روشی برای تقسیم منابع کلاستر فراهم میکنند. نام منابع باید در هر نیماسپیس یکتا باشد، اما لازم نیست در میان همهی نیماسپیسها یکتا باشد. محدودهدهی مبتنی بر نیماسپیس فقط برای آبجکتهای نیماسپیسدار (مثلا Deploymentها، Serviceها و …) کاربرد دارد و برای آبجکتهای سراسری کلاستر (مثلا StorageClass، Nodeها، PersistentVolumeها و …) کاربرد ندارد.
-
An API object that represents a piece of storage in the cluster. Available as a general, pluggable resource that persists beyond the lifecycle of any individual Pod.
[+]PersistentVolumes (PVs) provide an API that abstracts details of how storage is provided from how it is consumed. PVs are used directly in scenarios where storage can be created ahead of time (static provisioning). For scenarios that require on-demand storage (dynamic provisioning), PersistentVolumeClaims (PVCs) are used instead.
-
Claims storage resources defined in a PersistentVolume so that it can be mounted as a volume in a container.
[+]Specifies the amount of storage, how the storage will be accessed (read-only, read-write and/or exclusive) and how it is reclaimed (retained, recycled or deleted). Details of the storage itself are described in the PersistentVolume object.
-
A person who customizes the Kubernetes platform to fit the needs of their project.
[+]A platform developer may, for example, use Custom Resources or Extend the Kubernetes API with the aggregation layer to add functionality to their instance of Kubernetes, specifically for their application. Some Platform Developers are also contributors and develop extensions which are contributed to the Kubernetes community. Others develop closed-source commercial or site-specific extensions.
-
The smallest and simplest Kubernetes object. A Pod represents a set of running containers on your cluster.
[+]A Pod is typically set up to run a single primary container. It can also run optional sidecar containers that add supplementary features like logging. Pods are commonly managed by a Deployment.
-
Pod disruption is the process by which Pods on Nodes are terminated either voluntarily or involuntarily.
[+]Voluntary disruptions are started intentionally by application owners or cluster administrators. Involuntary disruptions are unintentional and can be triggered by unavoidable issues like Nodes running out of resources, or by accidental deletions.
-
Also known as: PDB
A Pod Disruption Budget allows an application owner to create an object for a replicated application, that ensures a certain number or percentage of Pods with an assigned label will not be voluntarily evicted at any point in time.
[+]Involuntary disruptions cannot be prevented by PDBs; however they do count against the budget.
-
The sequence of states through which a Pod passes during its lifetime.
[+]The Pod Lifecycle is defined by the states or phases of a Pod. There are five possible Pod phases: Pending, Running, Succeeded, Failed, and Unknown. A high-level description of the Pod state is summarized in the PodStatus
phasefield. -
Pod Priority indicates the importance of a Pod relative to other Pods.
[+]Pod Priority gives the ability to set scheduling priority of a Pod to be higher and lower than other Pods — an important feature for production clusters workload.
-
Enables fine-grained authorization of Pod creation and updates.
[+]A cluster-level resource that controls security sensitive aspects of the Pod specification. The
PodSecurityPolicyobjects define a set of conditions that a Pod must run with in order to be accepted into the system, as well as defaults for the related fields. Pod Security Policy control is implemented as an optional admission controller.PodSecurityPolicy was deprecated as of Kubernetes v1.21, and removed in v1.25. As an alternative, use Pod Security Admission or a 3rd party admission plugin.
-
Also known as: pod template
An API object that defines a template for creating Pods. The PodTemplate API is also embedded in API definitions for workload management, such as Deployment or StatefulSets.
[+]Pod templates allow you to define common metadata (such as labels, or a template for the name of a new Pod) as well as to specify a pod's desired state. Workload management controllers use Pod templates (embedded into another object, such as a Deployment or StatefulSet) to define and manage one or more Pods. When there can be multiple Pods based on the same template, these are called replicas. Although you can create a PodTemplate object directly, you rarely need to do so.
-
A PriorityClass is a named class for the scheduling priority that should be assigned to a Pod in that class.
[+]A PriorityClass is a non-namespaced object mapping a name to an integer priority, used for a Pod. The name is specified in the
metadata.namefield, and the priority value in thevaluefield. Priorities range from -2147483648 to 1000000000 inclusive. Higher values indicate higher priority. -
A check that the kubelet periodically performs against a container that is running in a pod, that will define container's state and health and informing container's lifecycle.
[+]To learn more, read container probes.
-
In computing, a proxy is a server that acts as an intermediary for a remote service.
[+]A client interacts with the proxy; the proxy copies the client's data to the actual server; the actual server replies to the proxy; the proxy sends the actual server's reply to the client.
kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.
You can run kube-proxy as a plain userland proxy service. If your operating system supports it, you can instead run kube-proxy in a hybrid mode that achieves the same overall effect using less system resources.
-
QoS Class (Quality of Service Class) provides a way for Kubernetes to classify Pods within the cluster into several classes and make decisions about scheduling and eviction.
[+]QoS Class of a Pod is set at creation time based on its compute resources requests and limits settings. QoS classes are used to make decisions about Pods scheduling and eviction. Kubernetes can assign one of the following QoS classes to a Pod:
Guaranteed,BurstableorBestEffort. -
A whole-number representation of small or large numbers using SI suffixes.
[+]Quantities are representations of small or large numbers using a compact, whole-number notation with SI suffixes. Fractional numbers are represented using milli units, while large numbers can be represented using kilo, mega, or giga units.
For instance, the number
1.5is represented as1500m, while the number1000can be represented as1k, and1000000as1M. You can also specify binary-notation suffixes; the number 2048 can be written as2Ki.The accepted decimal (power-of-10) units are
m(milli),k(kilo, intentionally lowercase),M(mega),G(giga),T(tera),P(peta),E(exa).The accepted binary (power-of-2) units are
Ki(kibi),Mi(mebi),Gi(gibi),Ti(tebi),Pi(pebi),Ei(exbi). -
Manages authorization decisions, allowing admins to dynamically configure access policies through the Kubernetes API.
[+]RBAC utilizes four kinds of Kubernetes objects:
- Role
- Defines permission rules in a specific namespace.
- ClusterRole
- Defines permission rules cluster-wide.
- RoleBinding
- Grants the permissions defined in a role to a set of users in a specific namespace.
- ClusterRoleBinding
- Grants the permissions defined in a role to a set of users cluster-wide.
For more information, see RBAC.
-
A copy or duplicate of a Pod or a set of pods. Replicas ensure high availability, scalability, and fault tolerance by maintaining multiple identical instances of a pod.
[+]Replicas are commonly used in Kubernetes to achieve the desired application state and reliability. They enable workload scaling and distribution across multiple nodes in a cluster.
By defining the number of replicas in a Deployment or ReplicaSet, Kubernetes ensures that the specified number of instances are running, automatically adjusting the count as needed.
Replica management allows for efficient load balancing, rolling updates, and self-healing capabilities in a Kubernetes cluster.
-
A ReplicaSet (aims to) maintain a set of replica Pods running at any given time.
[+]Workload objects such as Deployment make use of ReplicaSets to ensure that the configured number of Pods are running in your cluster, based on the spec of that ReplicaSet.
-
A workload resource that manages a replicated application, ensuring that a specific number of instances of a Pod are running.
[+]The control plane ensures that the defined number of Pods are running, even if some Pods fail, if you delete Pods manually, or if too many are started by mistake.
Note:
ReplicationController is deprecated. See Deployment, which is similar. -
Capabilities provided to one or more nodes (CPU, memory, GPUs, etc), and made available for consumption by Pods running on those nodes.
Kubernetes also uses the term resource to describe an API resource.
[+]Computers provide fundamental hardware facilities: processing power, storage memory, network, etc. These resources have finite capacity, measured in a unit applicable to that resource (number of CPUs, bytes of memory, etc). Kubernetes abstracts common resources for allocation to workloads and utilizes operating system primitives (for example, Linux cgroups) to manage consumption by workloads).
You can also use dynamic resource allocation to manage complex resource allocations automatically.
-
Describes the resources that a workload needs, such as devices. ResourceClaims are used in dynamic resource allocation (DRA) to provide Pods with access to a specific resource.
[+]ResourceClaims can be created by workload operators or generated by Kubernetes based on a ResourceClaimTemplate.
-
Defines a template that Kubernetes uses to create ResourceClaims. ResourceClaimTemplates are used in dynamic resource allocation (DRA) to provide per-Pod access to separate, similar resources.
[+]When a ResourceClaimTemplate is referenced in a workload specification, Kubernetes automatically creates ResourceClaim objects based on the template. Each ResourceClaim is bound to a specific Pod. When the Pod terminates, Kubernetes deletes the corresponding ResourceClaim.
-
Represents one or more infrastructure resources, such as devices, that are attached to nodes. Drivers create and manage ResourceSlices in the cluster. ResourceSlices are used for dynamic resource allocation (DRA).
[+]When a ResourceClaim is created, Kubernetes uses ResourceSlices to find nodes that have access to resources that can satisfy the claim. Kubernetes allocates resources to the ResourceClaim and schedules the Pod onto a node that can access the resources.
-
A person who reviews code for quality and correctness on some part of the project.
[+]Reviewers are knowledgeable about both the codebase and software engineering principles. Reviewer status is scoped to a part of the codebase.
-
Stores sensitive information, such as passwords, OAuth tokens, and SSH keys.
[+]Secrets give you more control over how sensitive information is used and reduces the risk of accidental exposure. Secret values are encoded as base64 strings and are stored unencrypted by default, but can be configured to be encrypted at rest.
A Pod can reference the Secret in a variety of ways, such as in a volume mount or as an environment variable. Secrets are designed for confidential data and ConfigMaps are designed for non-confidential data.
-
The
[+]securityContextfield defines privilege and access control settings for a Pod or container.In a
securityContext, you can define: the user that processes run as, the group that processes run as, and privilege settings. You can also configure security policies (for example: SELinux, AppArmor or seccomp).The
PodSpec.securityContextsetting applies to all containers in a Pod. -
A method for exposing a network application that is running as one or more Pods in your cluster.
[+]The set of Pods targeted by a Service is (usually) determined by a selector. If more Pods are added or removed, the set of Pods matching the selector will change. The Service makes sure that network traffic can be directed to the current set of Pods for the workload.
Kubernetes Services either use IP networking (IPv4, IPv6, or both), or reference an external name in the Domain Name System (DNS).
The Service abstraction enables other mechanisms, such as Ingress and Gateway.
-
A former extension API that enabled applications running in Kubernetes clusters to easily use external managed software offerings, such as a datastore service offered by a cloud provider.
[+]It provided a way to list, provision, and bind with external Managed Services without needing detailed knowledge about how those services would be created or managed.
-
Provides an identity for processes that run in a Pod.
[+]When processes inside Pods access the cluster, they are authenticated by the API server as a particular service account, for example,
default. When you create a Pod, if you do not specify a service account, it is automatically assigned the default service account in the same Namespace. -
A technique for assigning requests to queues that provides better isolation than hashing modulo the number of queues.
[+]We are often concerned with insulating different flows of requests from each other, so that a high-intensity flow does not crowd out low-intensity flows. A simple way to put requests into queues is to hash some characteristics of the request, modulo the number of queues, to get the index of the queue to use. The hash function uses as input characteristics of the request that align with flows. For example, in the Internet this is often the 5-tuple of source and destination address, protocol, and source and destination port.
That simple hash-based scheme has the property that any high-intensity flow will crowd out all the low-intensity flows that hash to the same queue. Providing good insulation for a large number of flows requires a large number of queues, which is problematic. Shuffle-sharding is a more nimble technique that can do a better job of insulating the low-intensity flows from the high-intensity flows. The terminology of shuffle-sharding uses the metaphor of dealing a hand from a deck of cards; each queue is a metaphorical card. The shuffle-sharding technique starts with hashing the flow-identifying characteristics of the request, to produce a hash value with dozens or more of bits. Then the hash value is used as a source of entropy to shuffle the deck and deal a hand of cards (queues). All the dealt queues are examined, and the request is put into one of the examined queues with the shortest length. With a modest hand size, it does not cost much to examine all the dealt cards and a given low-intensity flow has a good chance to dodge the effects of a given high-intensity flow. With a large hand size it is expensive to examine the dealt queues and more difficult for the low-intensity flows to dodge the collective effects of a set of high-intensity flows. Thus, the hand size should be chosen judiciously.
-
One or more containers that are typically started before any app containers run.
[+]Sidecar containers are like regular app containers, but with a different purpose: the sidecar provides a Pod-local service to the main app container. Unlike init containers, sidecar containers continue running after Pod startup.
Read Sidecar containers for more information.
-
Community members who collectively manage an ongoing piece or aspect of the larger Kubernetes open source project.
[+]Members within a SIG have a shared interest in advancing a specific area, such as architecture, API machinery, or documentation. SIGs must follow the SIG governance guidelines, but can have their own contribution policy and channels of communication.
For more information, see the kubernetes/community repo and the current list of SIGs and Working Groups.
-
Defines how each object, like Pods or Services, should be configured and its desired state.
[+]Almost every Kubernetes object includes two nested object fields that govern the object's configuration: the object spec and the object status. For objects that have a spec, you have to set this when you create the object, providing a description of the characteristics you want the resource to have: its desired state.
It varies for different objects like Pods, StatefulSets, and Services, detailing settings such as containers, volumes, replicas, ports,
and other specifications unique to each object type. This field encapsulates what state Kubernetes should maintain for the defined
object. -
Manages the deployment and scaling of a set of Pods, and provides guarantees about the ordering and uniqueness of these Pods.
[+]Like a Deployment, a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of its Pods. These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any rescheduling.
If you want to use storage volumes to provide persistence for your workload, you can use a StatefulSet as part of the solution. Although individual Pods in a StatefulSet are susceptible to failure, the persistent Pod identifiers make it easier to match existing volumes to the new Pods that replace any that have failed.
-
A pod managed directly by the kubelet daemon on a specific node,
[+]without the API server observing it.
Static Pods do not support ephemeral containers.
-
A StorageClass provides a way for administrators to describe different available storage types.
[+]StorageClasses can map to quality-of-service levels, backup policies, or to arbitrary policies determined by cluster administrators. Each StorageClass contains the fields
provisioner,parameters, andreclaimPolicy, which are used when a Persistent Volume belonging to the class needs to be dynamically provisioned. Users can request a particular class using the name of a StorageClass object. -
[+]sysctlis a semi-standardized interface for reading or changing the attributes of the running Unix kernel.On Unix-like systems,
sysctlis both the name of the tool that administrators use to view and modify these settings, and also the system call that the tool uses.Container runtimes and network plugins may rely on
sysctlvalues being set a certain way. -
A core object consisting of three required properties: key, value, and effect. Taints prevent the scheduling of Pods on nodes or node groups.
[+]Taints and tolerations work together to ensure that pods are not scheduled onto inappropriate nodes. One or more taints are applied to a node. A node should only schedule a Pod with the matching tolerations for the configured taints.
-
A Kubernetes systems-generated string to uniquely identify objects.
[+]Every object created over the whole lifetime of a Kubernetes cluster has a distinct UID. It is intended to distinguish between historical occurrences of similar entities.
-
May refer to: core Kubernetes or the source repo from which a repo was forked.
[+]- In the Kubernetes Community: Conversations often use upstream to mean the core Kubernetes codebase, which the general ecosystem, other code, or third-party tools rely upon. For example, community members may suggest that a feature is moved upstream so that it is in the core codebase instead of in a plugin or third-party tool.
- In GitHub or git: The convention is to refer to a source repo as upstream, whereas the forked repo is considered downstream.
-
A kernel feature to emulate root. Used for "rootless containers".
[+]User namespaces are a Linux kernel feature that allows a non-root user to emulate superuser ("root") privileges, for example in order to run containers without being a superuser outside the container.
User namespace is effective for mitigating damage of potential container break-out attacks.
In the context of user namespaces, the namespace is a Linux kernel feature, and not a namespace in the Kubernetes sense of the term.
-
A directory containing data, accessible to the containers in a Pod.
[+]A Kubernetes volume lives as long as the Pod that encloses it. Consequently, a volume outlives any containers that run within the Pod, and data in the volume is preserved across container restarts.
See storage for more information.
-
A Volume Plugin enables integration of storage within a Pod.
[+]A Volume Plugin lets you attach and mount storage volumes for use by a Pod. Volume plugins can be in tree or out of tree. In tree plugins are part of the Kubernetes code repository and follow its release cycle. Out of tree plugins are developed independently.
-
A verb that is used to track changes to an object in Kubernetes as a stream. It is used for the efficient detection of changes.
[+]A verb that is used to track changes to an object in Kubernetes as a stream. Watches allow efficient detection of changes; for example, a controller that needs to know whenever a ConfigMap has changed can use a watch rather than polling.
See Efficient Detection of Changes in API Concepts for more information.
-
Facilitates the discussion and/or implementation of a short-lived, narrow, or decoupled project for a committee, SIG, or cross-SIG effort.
[+]Working groups are a way of organizing people to accomplish a discrete task.
For more information, see the kubernetes/community repo and the current list of SIGs and working groups.
-
A workload is an application running on Kubernetes.
[+]Various core objects that represent different types or parts of a workload include the DaemonSet, Deployment, Job, ReplicaSet, and StatefulSet objects.
For example, a workload that has a web server and a database might run the database in one StatefulSet and the web server in a Deployment.
-
یک موجودیت در سامانهی کوبرنتیز. آبجکت یک منبع API است که Kubernetes API از آن برای نمایش وضعیت کلاستر شما استفاده میکند.
[+]یک آبجکت کوبرنتیز معمولا «سندی از هدف» (Record of Intent) است — بهمحض اینکه آبجکت را ایجاد کنید، کنترل پلین کوبرنتیز بهطور پیوسته کار میکند تا اطمینان یابد موردی که این آبجکت نمایندگی میکند واقعا وجود دارد. با ایجاد یک آبجکت، عملا به سامانهی کوبرنتیز میگویید میخواهید آن بخش از بارکاری (workload) کلاستر شما چگونه باشد؛ این همان «وضعیت مطلوب» (desired state) کلاستر شماست.
-
لایهای که اپلیکیشنهای مختلف کانتینر شده در آن اجرا میشوند. [+]
لایهای که اپلیکیشنهای مختلف کانتینر شده در آن اجرا میشوند.
-
حذف آغاز شده توسط API فرآیندی است که طی آن شما از Eviction API برای ایجاد یک شیء
[+]Evictionکه باعث خاتمه پاد به تدریج میشود، استفاده میکنید.شما میتوانید با فراخوانی مستقیم Evicion API با استفاده از یک کلاینت از kube-apiserver، مانند دستور
kubectl drain، درخواست تخلیه را بدهید. وقتی یک شیءEvictionایجاد میشود، سرور API، Pod را خاتمه میدهد.حذفهای آغاز شده توسط API به
PodDisruptionBudgetsوterminationGracePeriodSecondsپیکربندی شده شما احترام میگذارند.حذف آغاز شده توسط API با حذف فشار گره یکسان نیست.
- برای اطلاعات بیشتر به حذف آغاز شده توسط API مراجعه کنید.
-
منابعی که عملکرد کوبرنتیز را گسترش میدهند.
[+]نصب افزونهها درباره استفاده از افزونهها در کلاستر شما بیشتر توضیح میدهد و برخی از افزونههای محبوب را فهرست میکند.
-
الگوی اپراتور یک طراحی سامانه است که یک Controller را به یک یا چند منبع سفارشی (custom resource) پیوند میدهد.
[+]میتوانید کوبرنتیز را با افزودن کنترلرها به کلاستر خود گسترش دهید؛ فراتر از کنترلرهای توکار (built-in) که بهعنوان بخشی از خود کوبرنتیز ارائه میشوند.
اگر یک برنامهی در حال اجرا نقش یک کنترلر را ایفا کند و دسترسی API داشته باشد تا وظایفی را روی یک منبع سفارشی (custom resource) که در کنترل پلین تعریف شده است انجام دهد، این نمونهای از الگوی اپراتور است.
-
Also known as: kubelet eviction
«اویکشن بهدلیل فشار گره» فرایندی است که در آن kubelet بهصورت پیشدستانه پادها را برای بازپسگیری منابع روی گرهها خاتمه میدهد.
[+]kubelet منابعی مانند CPU، حافظه، فضای دیسک و inodeهای فایل سیستم را روی گرههای کلاستر شما پایش میکند. وقتی یک یا چند مورد از این منابع به سطوح مصرف مشخصی برسند، kubelet میتواند بهصورت پیشدستانه یک یا چند پاد را روی آن گره متوقف کند تا منابع را بازپسگیری کرده و از گرسنگی منابع (کمبود منابع) جلوگیری کند.
«اویکشن بهدلیل فشار گره» با اویکشن آغازشده از طریق API یکسان نیست.
-
یک پاد که kubelet برای نمایش یک پاد استاتیک از آن استفاده میکند.
[+]وقتی kubelet در پیکربندی خود یک پاد استاتیک را پیدا میکند، بهصورت خودکار تلاش میکند برای آن روی سرور API کوبرنتیز یک آبجکت پاد ایجاد کند. این یعنی پاد روی سرور API قابلمشاهده است، اما از آنجا قابلکنترل نیست.
(برای نمونه، حذف کردن یک پاد آینهای باعث نمیشود دیمون kubelet اجرای آن را متوقف کند).
-
Also known as: MVP
قابیتی که به kube-apiserver اجازه میدهد درخواست یک منبع را به یک سرور API همتای دیگر پروکسی کند.
[+]زمانی که یک کلاستر چند سرور API را با نسخههای متفاوت کوبرنتیز اجرا میکند، این قابلیت تضمین میکند که درخواستهای مربوط به منابع توسط سرور API درست رسیدگی شوند.
MVP بهطور پیشفرض غیرفعال است و میتوان آن را با فعالکردن feature gate با نام
UnknownVersionInteroperabilityProxyهنگام راهاندازی سرور API فعال کرد. -
شخصی که میتواند مشارکتهای کد کوبرنتیز را بررسی و تأیید کند.
[+]در حالی که بازبینی کد بر کیفیت و صحت کد متمرکز است، تأیید بر پذیرش جامع یک مشارکت متمرکز است. پذیرش جامع شامل سازگاری روبهعقب/روبهجلو، رعایت قراردادهای API و فلگها، مسائل جزئی عملکرد و صحت، تعامل با سایر بخشهای سیستم و موارد دیگر میشود. جایگاه تأییدکننده به بخشی از پایگاه کد محدود میشود. قبلاً به تأییدکنندگان، نگهدارنده (Maintainer) گفته میشد.
-
شخصی که برنامهای مینویسد که در یک کلاستر کوبرنتیز اجرا میشود.
[+]یک توسعهدهنده برنامه بر روی بخشی از یک برنامه تمرکز میکند. مقیاس تمرکز آنها ممکن است از نظر اندازه به طور قابل توجهی متفاوت باشد.
-
روشی برای نمایش ادعاها (claims) که بین دو طرف منتقل میشوند.
[+]JWTها میتوانند بهصورت دیجیتال امضا و رمزنگاری شوند. کوبرنتیز از JWT بهعنوان توکن احراز هویت استفاده میکند تا هویت موجودیتهایی را که میخواهند در یک کلاستر اقداماتی انجام دهند، تأیید کند.
-
یک جفت کلید-مقدار که برای الصاق فرادادههای دلخواه و غیرشناسایی به اشیاء استفاده میشود.
[+]فرادادههای موجود در یک حاشیهنویسی میتوانند کوچک یا بزرگ، ساختاریافته یا بدون ساختار باشند و میتوانند شامل کاراکترهایی باشند که توسط برچسبها مجاز نیستند. کلاینتهایی مانند ابزارها و کتابخانهها میتوانند این فرادادهها را بازیابی کنند.
-
Also known as: CEL
یک زبان عبارات همه منظوره که برای سریع، قابلحمل و ایمن بودن برای اجرا طراحی شده است.
[+]در کوبرنتیز، میتوان از CEL برای اجرای کوئریها و انجام فیلترینگ دقیق استفاده کرد. برای مثال، میتوانید از عبارات CEL با کنترلر پذیرش پویا (Dynamic Admission Control) برای فیلتر کردن فیلدهای خاص در درخواستها و با تخصیص پویای منابع (DRA) برای انتخاب منابع بر اساس ویژگیهای خاص استفاده کنید.
-
Also known as: kube-apiserver
سرور API جزئی از کنترل پلین کوبرنتیز است که API کوبرنتیز را در اختیار قرار میدهد. سرور API رابط جلویی کنترل پلین کوبرنتیز است.
[+]پیادهسازی اصلی سرور API کوبرنتیز، kube-apiserver است.
kube-apiserverبرای مقیاسپذیری افقی طراحی شده است؛ یعنی با استقرار نمونههای بیشتر مقیاس میگیرد. میتوانید چندین نمونه ازkube-apiserverرا اجرا کرده و ترافیک را میان آنها متوازن کنید. -
یک محصول نرمافزاری که توسط یک ارائهدهندهی شخص ثالث نگهداری میشود.
[+]برخی نمونههای سرویس مدیریتشده عبارتاند از AWS EC2، Azure SQL Database و GCP Pub/Sub؛ اما میتوانند هر ارائه نرمافزاری باشند که توسط یک برنامه کاربردی قابل استفاده باشد.
-
یک مشارکتکننده که بهطور پیوسته در جامعهی کوبرنتیز فعال است.
[+]میتوان issue ها و PR ها را به اعضا اختصاص داد و اعضا از طریق تیمهای GitHub در گروههای علاقهمندی ویژه (SIGs) مشارکت کنند. برای PRهای اعضا، تستهای پیشارسال (pre-submit) بهصورت خودکار اجرا میشود. انتظار میرود یک عضو بهعنوان مشارکتکنندهای فعال در جامعه باقی بماند.
-
یک یا چند کانتینر اولیهسازی که باید پیش از اجرای هر کانتینر برنامه تا پایان اجرا شوند.
[+]کانتینرهای اولیهسازی (init) مانند کانتینرهای معمول برنامه هستند، با یک تفاوت: کانتینرهای init باید پیش از آنکه هر کانتینر برنامهای بتواند شروع به کار کند، تا پایان اجرا شوند. کانتینرهای init بهصورت متوالی اجرا میشوند؛ یعنی هر کانتینر init باید پیش از آغاز کانتینر init بعدی، اجرای خود را کامل کند.
برخلاف کانتینرهای سایدکار، کانتینرهای init پس از راهاندازی پاد در حال اجرا باقی نمیمانند.
برای اطلاعات بیشتر، بخش کانتینرهای init را بخوانید.
-
کانتینرهای برنامه (یا کانتینرهای اپ) کانتینرهایی در یک پاد هستند که پس از تکمیل هر کانتینرهای init آغاز میشوند.
[+]یک کانتینر init به شما امکان میدهد جزئیات مقداردهی اولیهای را که برای کل workload مهم هستند و نیازی به ادامه اجرا پس از شروع کانتینر برنامه ندارند، جدا کنید. اگر یک پاد هیچ کانتینر init نداشته باشد، تمام کانتینرهای داخل آن پاد، کانتینرهای برنامه (app containers) محسوب میشوند.
-
قطعه کدی که درخواستهای ارسالی به سرور API کوبرنتیز را قبل از ماندگاری شیء، رهگیری میکند.
[+]کنترلرهای پذیرش برای سرور API کوبرنتیز قابل پیکربندی هستند و میتوانند "اعتبارسنجی"، "تغییر" یا هر دو باشند. هر کنترلر پذیرش میتواند درخواست را رد کند. کنترلرهای تغییر ممکن است اشیاء پذیرفتهشده را تغییر دهند؛ کنترلرهای اعتبارسنجی ممکن است این کار را نکنند.
-
مجموعهای از مسیرهای مرتبط در API کوبرنتیز.
[+]شما میتوانید با تغییر پیکربندی سرور API خود، هر گروه API را فعال یا غیرفعال کنید. همچنین میتوانید مسیرها را به منابع خاص غیرفعال یا فعال کنید. گروه API، گسترش API کوبرنتیز را آسانتر میکند. گروه API در یک مسیر REST و در فیلد
apiVersionیک شیء سریالی شده مشخص میشود.- برای اطلاعات بیشتر گروه API را مطالعه کنید.
-
گره یک ماشین worker در کوبرنتیز است.
[+]یک گره worker میتواند بسته به کلاستر، یک ماشین مجازی (VM) یا ماشین فیزیکی باشد. روی آن دیمونها یا سرویسهای محلی لازم برای اجرای پادها اجرا میشوند و این گره توسط کنترل پلین مدیریت میشود. دیمونهای روی گره شامل kubelet, kube-proxy و یک کانتینر رانتایم (container runtime) که CRI را پیادهسازی میکند (مانند Docker) است.
در نسخههای اولیهی کوبرنتیز، به گرهها «Minions» گفته میشد.
-
یک فایل رمزنگاریشدهی امن که برای اعتبارسنجی دسترسی به کلاستر کوبرنتیز استفاده میشود.
[+]گواهیها به اپلیکیشنهای درون یک کلاستر کوبرنتیز امکان دسترسی ایمن به API Kubernetes را میدهند. گواهیها تأیید میکنند که کلاینتها مجاز به دسترسی به API هستند.
-
لایه تجمیع به شما امکان میدهد APIهای اضافی به سبک کوبرنتیز را در کلاستر خود نصب کنید.
[+]وقتی API سرور کوبرنتیز را برای پشتیبانی از API های اضافی پیکربندی کردید، میتوانید اشیاء
APIServiceرا برای "claim" یک مسیر نشانی وب در API کوبرنتیز اضافه کنید. -
یک مولفه کوبرنتیز control plane که منطق کنترل مختص ابر را در خود جای میدهد. مدیر کنترلکننده ابری به شما امکان میدهد کلاستر خود را به API ارائهدهنده ابر خود پیوند دهید و مولفههایی را که با آن پلتفرم ابر در تعامل هستند از مولفههایی که فقط با کلاستر شما در تعامل هستند جدا میکند.
[+]با جدا کردن منطق قابلیت همکاری بین کوبرنتیز و زیرساخت ابری زیربنایی، مؤلفهی cloud-controller-manager، ارائهدهندگان ابر را قادر میسازد تا ویژگیها را با سرعتی متفاوت در مقایسه با پروژه اصلی کوبرنتیز منتشر کنند.
-
شخصی که مسئول طراحی سطح بالای یک برنامه است.
[+]یک معمار تضمین میکند که پیادهسازی یک برنامه به آن اجازه میدهد تا با اجزای اطراف خود به روشی مقیاسپذیر و قابل نگهداری تعامل داشته باشد. اجزای اطراف شامل پایگاههای داده، زیرساخت ثبت وقایع و سایر میکروسرویسها هستند.
-
Also known as: Resource
یک موجودیت در سیستم تایپ کوبرنتیز، مربوط به یک endpoint در API کوبرنتیز. یک منبع معمولاً نشاندهندهی شیء است. برخی منابع، عملیاتی را روی اشیاء دیگر نشان میدهند، مانند بررسی مجوز.
[+]هر منبع، یک endpoint HTTP (URI) را در سرور API کوبرنتیز نشان میدهد که schema اشیاء یا عملیات روی آن منبع را تعریف میکند.
-
یک رشته که توسط کلاینت ارائه میشود و در URL منبع به یک آبجکت اشاره میکند؛ مانند
[+]/api/v1/pods/some-name.در هر لحظه، فقط یک آبجکت از یک نوع (kind) میتواند یک نام مشخص داشته باشد. با این حال، اگر آن آبجکت را حذف کنید، میتوانید آبجکت جدیدی با همان نام بسازید.
-
یک مشخصه که تعیین میکند گروههایی از پادها چگونه مجازند با یکدیگر و با سایر اندپوینتهای شبکه ارتباط برقرار کنند.
[+]نتورک پالیسیها به شما کمک میکنند بهصورت اعلانی (declarative) پیکربندی کنید که کدام پادها اجازه دارند به یکدیگر متصل شوند، کدام نیماسپیسها مجاز به برقراری ارتباط هستند، و بهطور مشخص هر سیاست روی کدام شمارهپورتها اعمال شود. منبعهای
NetworkPolicyاز لیبلها برای انتخاب پادها استفاده میکنند و قوانینی تعریف میکنند که مشخص میکند چه ترافیکی به پادهای انتخابشده مجاز است. نتورک پالیسی توسط پلاگین شبکهی پشتیبانیشدهای که از سوی یک ارائهدهندهی شبکه فراهم میشود پیادهسازی میگردند. توجه داشته باشید که ایجاد یک منبع شبکه بدون وجود کنترلری که آن را پیادهسازی کند، هیچ اثری نخواهد داشت. -
در کوبرنتیز، affinity مجموعهای از قوانین است که به scheduler در مورد محل قرارگیری پادها راهنمایی میکند.
[+]دو نوع affinity وجود دارد:
این قوانین با استفاده از برچسب و انتخابگرها کوبرنتیز که در پادها مشخص شدهاند، تعریف میشوند و بسته به اینکه میخواهید scheduler چقدر آنها را سختگیرانه اجرا کند، میتوانند الزامی یا ترجیحی باشند.
Feedback
Was this page helpful?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub Repository if you want to report a problem or suggest an improvement.