kubectl get replicaset. In the case of a Job, this option is ignored. The v1. For Deployment, ReplicaSet, Replication Controller, wait for the status value of ready_replicas to change to the number of replicas. 4 or later. This Deployment specifies that it wants to maintain 3 replicas of a Pod running the Nginx container. You cannot create replicaset using the command line. It specifies that there should be three replicas of the Deployment and that each pod should be labeled with app: nginx. ReplicaSet. El Deployment crea un nuevo ReplicaSet. Deployment creates it in the background and manage it. x ReplicaSet. The Deployment is scaling down its older ReplicaSet(s). A deployment creates a ReplicaSet that has the purpose of maintaining a "set" of "replicas" of said deployment. yaml --namespace=custom-namespace. A pod is the smallest unit of deployment in Kubernetes, consisting of one or more containers that share resources and networks. DeploymentとReplicaSetとPod. ReplicaSet は、管理すべき Pod の集合・一覧を Label によってフィルタリング・識別し、クラスタ内で動作する Pod を追跡するのに. It creates a selector that matches to matchLabels. I am not able to delete this ReplicaSet as well. Since the required number of pods is maintained and monitored, they're running and available after the deployment is created. Let's use the official example of a Deployment that creates a ReplicaSet to bring up three nginx Pods:If you deploy a pod from deployment object, kind:Deployment, then the deployment controller appends a unique name to pod that is part of specific deployment. Create a Deployment to rollout a ReplicaSet. It ensures that the desired number of replicas (PODs with the application running), as mentioned while creating the Replicaset, is always maintained. You can select resources based on these labels to delete them. But what is the best for this case ? This Pod is stateful (I am using volume hostPath to keep the data) and is deployed using nodeSelector to keep it always on the same Node. As per the name, ReplicaSet is used for managing the replicas. - type: Available status: 'False'. In other words, a ReplicationController makes sure that a pod or a homogeneous set of pods is always up and available. This Replicaset is responsible for creating Pod's. When you update a Deployment, it will update the ReplicaSet, which in turn updates the Pods. The ReplicaSet creates Pods in the background. affinity. Or just strip the name out to get the index at the end. To start with the deployment of the new cluster, go to the deploy option in the top right corner. The standard replica set deployment for a production system is a three-member replica set. Geographically distributed replica set – Enhances redundancy of data besides protecting data against faults such as power loss. A Deployment's Status does not match with what the corresponding ReplicaSet/Pods are showing. integer. The nodeapp-deployment is the deployment name which is already. core 2. . one may never need to manipulate ReplicaSet objects when using a Deployment)Alternatives to ReplicaSet Deployment (recommended) Deployment is an object which can own ReplicaSets and update them and their Pods via declarative, server-side rolling updates. Deployment is the easiest and most used resource for deploying your application. Now, you need to upgrade one of. . Canary Deployments. A replica set is a group of mongod instances that maintain the same data set. Deployment menaikkan kapasitas ReplicaSet terbaru. Deployment resources enable declarative updates of Pods and ReplicaSets. Now copy your deployment file to a master node and apply it. This deployment of DCs is known as a replica set. 14, 2023 Updated Nov. In summary, Controller reads the Deployment spec, forwards the pod configuration to ReplicaSet and then it creates the pods with. OpenShift Container Platform adds expanded support for the software development and deployment lifecycle with the concept of deployments. Nếu có bất kỳ sự cố nào xảy ra và các Pod bị lỗi. Let’s first take a look at how should we create a ReplicaSet. 式的定义方法,在 Deployment 对象中描述一个期望的状态,Deployment 控制器就会按照一定的控制 速率把实际状态改成期望状态,通过定义一个 Deployment 控制器会创建一个新的. It manages the deployment and scaling of a set of Pods, and provides guarantee about the ordering and uniqueness of these Pods. When a Deployment is changed, a new ReplicaSet is created. Replica Count: The number of replicas (pods) the controller should always be. Concepts: Pod: A Pod is a group of one. Since the Kubernetes v1. Here is the manifest file which will make sure that the deployment of your web application has 3 replicasets always up and running. 1. 3 Answers. The Deployment is scaling up its newest ReplicaSet. functionality, because unlike kubectl rolling-update, they are declarative, server-side, and have additional features. e: class-name and the pod created will be class-name-0 and you can replace the _ by -. In general, you can set up replica sets for testing either with RBAC enabled or disabled. spec. As an alternative to using this procedure, you can use. You signed in with another tab or window. delete a Deployment to delete this replicaset. Kubernetes Documentation. You can create a ReplicaSet without creating a Deployment, but nowadays it does not make much sense. If you deployed a Windows service, replace linux with windows. Under the hood, Deployment creates a ReplicaSet which in turn creates pods on our cluster. What is a ReplicaSet?. If this isn't done, any time a change to that object is applied, for example via kubectl apply -f deployment. More precisely, a Deployment creates a ReplicaSet which then creates a set of identical, steteless, pods, w. In this case, you select a label that is defined in the Pod template (app: nginx). The Deployment helps move between different versions of applications in the above diagram by moving between different Replicaset versions. The Deployment creates a ReplicaSet that creates three replicated Pods, indicated by the . Default value: pod. This is needed for rolling upgrade, rollback functionsWhen you make any change in deployment, you’ll see there’s a new replicaset created. In other words, a ReplicationController makes sure that a pod or a. Number of seconds to sleep between checks. We can also roll out an app via a ReplicaSet but a deployment resource give us a declarative application update. The next part in the manifest is the selector field. ; Cloud Manager. StatefulSetsA Replicaset is a structure that enables you to easily create multiple pods, then make sure that that number of pods always exists. For any of the mentioned triggers, the Deployment controller will do a Deployment sync. It ensures that the desired number of replicas (PODs with the application running), as mentioned while creating the Replicaset, is always maintained. This means that a Deployment can have as many active ReplicaSets as possible, and eventually the deployment controller will scale down all old ReplicaSets and scale up the newest one. The kubectl set env command updates the environment variables for a Kubernetes resource, such as a Deployment, ReplicaSet, or StatefulSet. there are a few things you can do with a DeploymentConfig (around triggers) that you. I'm trying to delete some old deployments / replicasets I have in my cluster but when I run kubectl delete deployment It'll say the deployment is deleted and the pod from that deployment is Terminating, but then a few seconds later the deployment is magically recreated and the pod comes back. Vì vậy, ta nên sử dụng Deployment khi muốn có ReplicaSet. The ReplicaSet creates Pods in the background. Update the replica set configuration when the hostname of a member's corresponding mongod. replicas field. The deployment file contains details for a ReplicaSet that includes a PodTemplate. reason: MinimumReplicasUnavailable message:. Completar un. It's mainly used by Deployment as a. How to delete objects. If you see the logs, they are starting from 73, meaning that the previous pod had written till 72 in the file and. By evaluating pod. Now this ReplicaSet and its Pods are managed by the Deployment. 1. 4. trafficSplitMethod - Traffic split method string. Kubernetes deployment drawbacks. As we can find in the Kubernetes ReplicaSet documentation: Deployment is a higher-level concept that manages ReplicaSets and provides declarative updates to Pods along with a lot of other useful features. g. The kubectl create deployment command causes Kubernetes to create a Deployment named monolith on. Deployment creates ReplicaSet with the number of replicas=3. After the deployment starts, you find a new KUBERNETES OBJECT STATUS tab next to the TASK LOG tab. For Deployment, ReplicaSet, Replication Controller, only scale, if the number of existing replicas matches. For Deployment, ReplicaSet, Replication Controller, only scale, if the number of existing replicas matches. This is how the deployment is usually rolled out. When we create a deployment it create a replica set and number of pods (that we gave in replicas ). It deletes inginx-deploy Deployment object and also its associated Pod and ReplicaSet objects as shown in the below picture: Fig-8:- Delete inginx Deployment without cascade option. . What is a Kubernetes ReplicaSet? A ReplicaSet (RS) is a Kubernetes object used to maintain a stable set of replicated pods running within a cluster at any given time. For the value smi, the percentage traffic split is done at the request level by using a service mesh. ConclusionThough the Deployment is more suitable than the ReplicaSet, this answer focuses on ReplicaSet over Pod cause the question is between the Pod and ReplicaSet. In summary, Controller reads the Deployment spec, forwards the pod configuration to ReplicaSet and then it. You switched. Have or install the MongoDB Enterprise Kubernetes Operator. kubectl rollout restart deployment myapp deployment. Vì vậy, ta nên sử dụng Deployment Container thay vì sử dụng trực tiếp ReplicaSet trừ khi ta có nhu cầu đặc biệt cần phối hợp. Bare pod. StatefulSet is also a Controller but unlike Deployments, it doesn’t create ReplicaSet rather itself. The Deployment knows that the two Pods can't coexist in the same ReplicaSet, so it creates a second ReplicaSet to hold version 2. » Prerequisites. Offical Link. kubectl scale deployment <deployment-name> --replicas=3 My. All fine till here. offer several benefits for managing application deployments:Good explanation what is event in Kubernetes you can find in Types of Kubernetes Events article. To manually delete a ReplicaSet, run the following command: kubectl delete rs <ReplicaSet_NAME> --cascade=false Next steps. Deployment sẽ sở hữu và quản lý các ReplicaSet của chúng. A ReplicaSet is a set of identical backup Pods maintained on the backend side to ensure a Pod is always available. StatefulSets. You would have those many replicas running. However, it handles updating them in a controlled way. The second line is when I triggered the update. このリソースは直接使用することは少ないが、次に出てくるDeploymentを抑える上で理解が進むのでやっていこう。. The goal is to ensure that the applications running in the pods have enough resources and do not experience downtime, even if one or more pods fail. That’s the job of the ReplicaSet object. Whether you’re rolling an update or rollbacking one, using the deployment helps you handle Pod instances better. The. Deployment :ReplicaSetを管理するオブジェクト(アプリケーションデプロイの基本単位. The replica set name is immutable once deployed. This way the deployment will be marked as paused and won't be reconciled by the controller. 2. This naming is consistent, so you can make sure you always have. For Deployment, ReplicaSet, Replication Controller, only scale, if the number of existing replicas matches. You can use the kind: deployment can check kubectl get rc still replica set will be there. The rules are of the form "this pod should (or, in. You can define a deployment to create a ReplicaSet or to remove deployments and adopt all their resources with new deployments. Version. Then gradually it decreases the count of replicas from the previous ReplicaSet and increases the count on the current one until the latter ReplicaSet has all the Pods. A ReplicaSet ensures that a specified number of Pod replicas are running continuously and helps with load-balancing in case of an increase in resource usage. An ordinary Deployment or ReplicaSet could not implement this workflow. r. # Create the MySQL StatefulSetusing deployment we can undo deployment, pause deployment, resume deployment. string. This is where you specify how the ReplicaSet should. This is actually happening only for one specific ReplicaSet. Deployemnt Configuration. Users do not have to manipulate replication controllers, replica sets, or pods owned by DeploymentConfig objects or deployments. While ReplicaSets can be used independently, today they're mainly used by Deployments as a mechanism to orchestrate Pod creation, deletion and updates. Click the Save button. A ReplicaSet uses labels to match the pods that it will manage. I found a guide that uses vanilla manifests for MongoDB deployment. これまで、Pod、ReplicaSetの動作を確認してきましたので、今回はDeploymentの動作を確認します。 Deploymentは、ReplicaSet、Podの上位概念で、以下のような関係になります。 Deploymentの作成 yamlファイルの作成とapply. Notice that the name of the ReplicaSet is always formatted as [DEPLOYMENT-NAME]-[RANDOM-STRING]. A ReplicaSet (RS) is a Kubernetes object used to maintain a stable set of replicated pods running within a cluster at any given time. yml. With ReplicaSet you define the number of replicas you want to run for a particular service. Use this procedure to deploy a new replica set that Ops Manager. At a minimum, Deployment for an. For all intents and purposes just use Deployments now. In other words, a Deployment makes sure that a pod or homogeneous set of pods are always up and available. When you revise a deployment, a ReplicaSet is. Deployment is an abstraction over ReplicaSet. A replica set is a core Kubernetes object called ReplicaSet. For the value. StatefulSet is also a Controller but unlike Deployments, it doesn’t create ReplicaSet rather itself. stateless 앱을 배포할 때 사용되는 가장 기본이 되는 컨트롤러 입니다. Whenever we create a new deployment, K8s triggers a Rollout. Labels are used to enrich resources with metadata often describing things like the resource's purpose, environment, and version. Use the kubectl apply command to create the ReplicaSet by applying the manifest:DaemonSet is a controller similar to ReplicaSet that ensures that the pod runs on all the nodes of the cluster. The original node affinity specified at the . metadata: annotations: deployment. Frequently, when deploying a specific pod-template, the deployment fails to create a successful replicaset and no instance is created. create a deployment. This is how the deployment controller looks up all the relevant pods of respective deployment. ) If you are going to use. When you revise a deployment, a ReplicaSet is created that. Deployment adds flexibility to your Kubernetes cluster and eventually, to your application. This document provides strategies for replica set deployments and describes common architectures. replicas field. That method will check the Deployment status and perform the. spec. name=backend. Không giống trường hợp khi người dùng trực tiếp tạo pod, 1 ReplicaSet sẽ thay thế các pod đã bị xóa hoặc bị kết thúc vì bất kỳ lý do gì, ví dụ như. Imperative way: (this will then diverge from what you have in your yaml-file) kubectl scale deployment mage-di --replicas=2. Identifying specific replica in kubernetes deployment programmatically. Note: In Kubernetes, Deployments don’t manage Pods directly. I have a command to scale all the deployments to zero. Specify the full path of the directory where the. Deployment is a supervisor for pods. spec. Deployment では、全てのPodで1個のPV をマウントしている違いがあります. ”ローリングアップデート”というのができる. The relation between Deployment, Replicaset & POD. These sets provide redundancy and fault tolerance. To scale up set --replicas=1 (or any other required number) accordingly. ( i. I tried to update the Deployment and only the new ReplicaSet is updated. We run the following command in k8s. Each Pod has its own IP address and shares a PID namespace, network, and host name. Alternativas al ReplicaSet Deployment (recomendado) UnDeployment es un objeto que puede poseer ReplicaSets y actualizar a estos y a sus Pods mediante actualizaciones en línea declarativas en el servidor. ; Click Select a Startup Option and select the configuration option. 0. Select the MongoDB version for your replica set. The Deployment is scaling up an existing ReplicaSet. At the same time, Kubernetes Concepts page says about ReplicaSet object. If a node is added/removed from a cluster, DaemonSet automatically adds/deletes the pod. ReplicaSets will create and scale Pods based on the triggers you specify in your Deployment. Imperative way: (this will then diverge from what you have in your yaml-file) kubectl scale deployment mage-di --replicas=2. Sorted by: 6. Like deployment replicaset cant rollout or rollback to different version of application nor maintain any revisions for the same. the pod template specified inside the Deployment's yaml file, and the value of the replica field (which defines the size of the pod set). spec section is similar to the ReplicaSet’s, defining the pod template for each replica. And Replica Set manages the basic units in Kubernetes - Pods. Kubectl Scale use cases. 2. 7. The Deployment creates a ReplicaSet that creates three replicated Pods, indicated by the . replicas property from the YAML file. For example, if you look at the above Deployment closely, you will see that it first creates a new Pod, then deletes an old Pod, and creates. spec. But while deployment is under control of an HPA, if you apply deployment config with set amount of replicas, it would override current desired amount of replicas and might scale your deployment. Kubernetes marks a Deployment as progressing when one of the following tasks is performed: The Deployment creates a new ReplicaSet. A running kubernetes cluster stores a lot of interrelated resources, such as deployment, replicaset and pod, which are a set of related resources that we commonly use. Step 4: Viewing live updates from the cluster. We also covered hands-on Lab 14 , Lab 15 , Lab 16 , Lab 17 Lab 22 & Lab 24 out of our 30+ extensive labs. For example, when you create a ReplicaSet, Kubernetes. As per the name, ReplicaSet is used for managing the replicas of our pods. When you create a Deployment in Kubernetes, a ReplicaSet is created automatically. While ReplicaSets can be used independently, today they’re mainly used by Deployments as a mechanism to orchestrate Pod creation, deletion and updates. A ReplicaSet's purpose is to maintain a stable set of replica Pods running at any given time. Kubernetes creates a new ReplicaSet each time after the new Deployment config is deployed and. kubectl get pods. Objectives Create an nginx deployment. 1 Answer. 2. 9) is a Kubernetes resource used to manage stateful applications. Changes to label selectors make existing pods fall out of ReplicaSet's scope, so if you change labels and label selector the pods are no longer "controlled" by ReplicaSet. then apply it to the cluster with: kubectl apply -f k8-deployment. 2. caret right icon. In general, Deployment is a more powerful and feature-rich resource than ReplicaSet. Similar to a ReplicationController, a ReplicaSet is a native Kubernetes API object that ensures a specified number of pod replicas are running at any given time. Declarative config management. Check if there are any finalizers which block delition. 0. The trailing ReplicaSets that you can see after deployment deletion depends of the Revision History Limit that you have in your Deployment. Ta thấy kết quả trả về có 1 ReplicaSet có tên là myapp-deployment-549fd4bf6c. ReplicaSet and PODS are associated with the selectors. ReplicaSet :同じ仕様のPodを期待する数に維持するオブジェクト. StatefulSet is the workload API object used to manage stateful applications. But what ends up happening is all the pods in the replicaset inside the deployment will end up using the same shared volume and end up modifying the same data on disk. From kubernetes terminology you can delete any component with below pattern. spec. El Deployment está reduciendo su(s) ReplicaSet(s) más antiguo(s). kubectl label nodes <node> <key>=<value>. 2 Answers. Replica Set is the next generation of Replication Controller. When a new version of an application is deployed, the Deployment creates a new ReplicaSet with. The kubectl scale command is used to change the number of running replicas inside Kubernetes deployment, replica set, replication controller, and stateful set objects. Author also mentioned about types of events. Let's understand the differences between Deployment, ReplicaSet, and Pod. Pod baru menjadi siap atau dapat diakses (siap selama setidaknya MinReadySeconds). A ReplicaSet (RS) is a Kubernetes object that ensures there is always a stable set of running pods for a specific workload. In the case of a Job, update parallelism only if the current parallelism value matches. When we create a Kubernetes Deployment with the name web-app, it will create a ReplicaSet with the name web-app-<replica-set-id>. ) Without RS, we will have to create multiple manifests for the number of pods we. An important fact to note here is that the way we expose the deployment and the parameters can vary depending. The ReplicaSet config file has two important features: Pod Template: A template for new Kubernetes pods. Normally, the old (previous). Kubernetes has emerged as the de facto standard for container orchestration. Cet objet est souvent utilisé pour garantir la disponibilité d'un certain nombre identique de Pods. It also needs to check whether the target pod is already managed by another controller (like a Deployment or another ReplicaSet). Once the MongoDB resource is created, the operator will deploy a new. The configuration of each Deployment revision is stored in its ReplicaSets; therefore, once an old ReplicaSet is deleted, you lose the ability to rollback to that revision of Deployment. tier=backend. At least that is how it is in 1. host. (No need for. The Deployment can manage multiple ReplicaSets in order to perfom rolling update of the. A pod is the smallest unit of deployment in Kubernetes, consisting of one or more containers that share resources and networks. The controller verifies if the current state matches the deployment’s desired set, and creates a ReplicaSet if necessary, which then creates the pods. Replica sets provide redundancy and high availability and are the basis for all production deployments. You’ll create a new Kubernetes secret for the new user, edit the custom resource of ReplicaSet deployment, and update the ReplicaSet to your. This document provides strategies for replica set deployments and describes common architectures. After it's paused you can make necessary changes to your configuration and then resume it by using kubectl rollout resume. The situation is analogous to having a manager order "We need three workers doing this task at all times. The deployment will fetch a docker image hosting the required python runtime, and then attach a ConfigMap to the application Pod hosting the sample Python script shown earlier. You can define a deployment to create a ReplicaSet or to remove deployments and adopt all their resources with new deployments. Once your Pods have started, you can scale the StatefulSet up or down without risking the destruction of the MySQL primary node. Deployments. Il a ensuite poursuivi la montée en puissance du. Replica sets can be added to any peered virtual network in any Azure region that supports Domain Services. Can also be specified via K8S_AUTH_HOST environment variable. When you increase the replica count, to scale up your service. By default, 10 old ReplicaSets will be kept, however its ideal value depends on the frequency and stability of new Deployments. Overview. This way it will create a new replicaset with updated configuration. However, Deployment is a higher-level concept that manages ReplicaSets and provides declarative updates to Pods along with a lot of other useful features. This last is. So, if you want to change anything in the pod Spec, you should make that change in the deployment, not in the replicaset or the pod directly as they will get overwritten. Note that there are no volumes or mounts. You will almost always use only Deployment for deploying an application, and for every change, e. A Deployment allows you to create a newer revision of a ReplicaSet and then migrate existing pods from a previous ReplicaSet into the new revision. To verify the number of Pods, run the $ kubectl get pods command. Using a ReplicaSet: Non-Aware Application. 46. You cannot create any Deployment (RelicaSet) without container properties description (images, volumes etc. This is different from vertical scaling, which for Kubernetes would. As you stated the deployment was created but no pods were, what we need is the output of the replicaset to figure out why it wasn't able to create the pods, can you do a kubectl get replicaset and then find the one corresponding to you deployment and then kubectl describe replicaset <replicaset_name>updatedReplicas - the number of pods reachable by deployment, that match the spec template. The smallest unit of deployment, a Pod, runs containers. The ReplicaSet is responsible for making sure that the number of replicas specified are always running. restart で、ロールアウトを再実行します。. Deployment is a higher-level concept that manages ReplicaSets and provides declarative updates to Pods. So, for example if we need our ReplicaSet to manage all pods with the label role=webserver, the controller will search for any pod with that label. From the table, you see one Kubernetes deployment. Pods (and, by extension, containers) are, nevertheless, short-lived entities. By using the command kubectl delete rs <rs name>, where rs name is the name of your ReplicaSet, you can destroy ReplicaSets. Deployment – A Deployment is the most common way to get your app on Kubernetes. The following deployment strategies are supported in the built-in Kubernetes deployment object. Pods are ephemeral wrappers responsible for running one or more containers that have resource requests for a worker node in your cluster. yaml kubectl apply -f d. A ReplicaSet ensures that a specified number of pod replicas are running at any given time. Every pod owned by a ReplicaSet will get the unique "metadata. Additional replica sets in different Azure regions provide geographical disaster recovery for. To create a ClusterIP service (default), use the following command: $ kubectl expose deployment nginx-deployment –name my-nginx-service –port 8080 –target-port=80. ClusterControl supports MongoDB/Percona Server for MongoDB 3. the pod template specified inside the Deployment's yaml file, and the value of the replica field (which define the size of the pod set). Enter the replica set name and click the Convert button. revisionHistoryLimit is an optional field that specifies the number of old ReplicaSets to retain to allow rollback. spec. To work with Namespace, you need to add --namespace flag to k8s commands. DeploymentはReplicaSetを生成、管理し、ReplicaSetはPodの生成、管理をする。 コンテナイメージの変更などのアップデートがあった際には、新規にReplicaSetを生成し、旧ReplicaSetから新ReplicaSetへPodが置き換えられていく。(ローリングアップデート)1. Once your Pods have started, you can scale the StatefulSet up or down without risking the destruction of the MySQL primary node. You may test it, after deleting the ReplicaSet and then typing the command kubectl get pods into the terminal. Two important columns of this output are: DESIRED displays the desired number of replicas of the application, which you define when you. The deployment controller extends the ReplicaSet Controller and is responsible for rolling out software updates when you create pods with deployment resources and update them with new versions of your software. Viewed 449 times. This is how rolling updates work - the Deployment creates a new ReplicaSet then gradually scales up the new one and scales down the old to the new until they are all on the new version. A standalone instance isn't a good choice for a production deployment because it can be a single point of failure. So, Replicaset ensure replicas of pods are available whereas deployment are reponsible for managing different versions of the application. Pod と ReplicaSet の関係は疎結合になっている。. Therefore, we recommend using Deployments instead of directly using ReplicaSets, unless you require custom update orchestration or don't require updates at. The . Main difference (besides that one is using ReplicationController and the other using ReplicaSet as you rightly pointed out) is that. Check the status of the rollout to see if it succeeds or not. Kubernetes provides a guarantee that the established Pod order will be respected. Declarative config management. 你负责描述 Deployment 中的目标状态,而 Deployment 控制器(Controller) 以受控速率更改实际状态, 使其变为期望状态。 你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。A ReplicaSet is responsible for creating and scaling Pods, and for ensuring that Pods that fail are replaced. Then, the Deployment controller constantly works and monitors to ensure the actual state is as expected. This deployment of DCs is known as a replica set. So, keeping a Pod(s) inside the ReplicaSet inside the Deployment makes for a highly effective hierarchy layer in Kubernetes.