In this documentation you will learn how HPA works, how to use it, what is supported etc. Finally, we will visualize and monitor all our data in. Kubernetes Deployments are. For simplicity, are we using Nginx as the pod image. Statefulsets. Limitations. But unlike a regular deployment, it allows you to specify the order and dependencies of the deployment to. podManagementPolicy. As a pod can have. On an update the existing Pods will get deleted and recreated. A key aim of Services in Kubernetes is that you don't need to modify your existing application to use an unfamiliar service discovery mechanism. The original node affinity specified at the . MySQL settings remain on insecure defaults to keep the focus on general patterns for running stateful. Replicas in a StatefulSet follow a graceful, sequential approach to deployment, scale, upgrade, and termination. 6. Deployment vs. yaml file, you will find a snippet around how we are deploying a stateful application. Deployments vs Daemonsets vs Statefulsets. This logic is mandatory in. spec. Kubernetes or K8s is an open-source orchestration system for containerized applications that helps in automating software deployment, management and scaling. First, we will create a persistent volume claim for the storage we need. Each StatefulSet domain will work as a DNS subdomain depending on the configuration of DNS for a Cluster. The actual Pod creation is handled by the StatefulSet controller in Kubernetes. g. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. Updates are versioned and you can revert to any previously known state of a Deployment. 安定したネットワーク識別子. イメージ的にはPodTemplateを持つDeploymentにPVCも追加した感じ。. Otherwise you can use Deployments with multiple pods online for your shards. If you look at web_stateful. When using Kubernetes, most of the time you don’t care how your pods are scheduled, but sometimes you care that pods are deployed in order, that they have a persistent storage volume, or that they have a unique, stable network identifier across restarts. The three most common are: Rolling update strategy: Minimizes downtime at the cost of update speed. PersistentVolumes. Gestiona el despliegue y escalado de un conjunto de Pods, y garantiza el orden y unicidad de dichos Pods. Since 1. So we will add the namespace while deploying each component. 9. So, for example, Kubernetes will only create example-statefulset-5 after example-statefulset-4 is up and running. 1 Answer. It's created after deployment. These are normally used instead of ReplicaSets as they are more flexible and creating a Deployment results in. Note that this is the default update strategy, but it’s a good practice to declare it. This article describes how to create, update, and delete StatefulSets, which are used to maintain the state of an application beyond a pod lifecycle in an Azure Kubernetes Serice deployment in AKS hybrid. To view Resources found in a directory containing a kustomization file, run the following command: kubectl kustomize. When using Kubernetes, most of the time you don’t care how your pods are scheduled, but sometimes you care that pods are deployed in order, that they have a persistent storage volume, or that they have a unique, stable network identifier across. 15)不支持这一属性,只有StatefulSet才有,因此不得不使用后者。. 25. Các Pod của Deployment cũng có thể bị xóa theo thứ tự bất kỳ, hoặc xóa đồng thời nhiều Pod (trong trường hợp scale down deployment) Statefulset. system (system) Closed March 11, 2022, 6:44am 3. Restart Pods. A Deployment manages multiple pods by automating the creation, updating, and deletion of ReplicaSets. Pods deployed by Deployment are identical and interchangeable, created in random order with random hashes in their Pod names. Then, to scale up you'd manually create another deployment and another service. To revert the deployment to the previous working version, use the rollout undo command: kubectl rollout undo statefulset/dbc1 -n mysql1 The output is similar to the following:StatefulSet and deployment controllers. The Deployment creates a ReplicaSet that creates three replicated Pods, indicated by the . summary, it is possible to set min / max replicas for a statefulset using HPA. In order to demonstrate the basic features of a. 目前看来有点本末倒置,不过不. your state), so it cannot act as fast as Deployment (stateless) apps can. Kubernetes (K8s) is one of the popular open-source container orchestration systems for automating deployment, scaling, and management of containerized applications. But many times, due to some requirements, users make sure that the pods are deployed in order with persistent storage volume and. template field of the YAML configuration. As mentioned above most of the time you can simply use volumes without the need to define StorageClass or PV/PVC. RollingUpdate: The RollingUpdate update strategy implements automated, rolling update for the Pods in a StatefulSet. In the above YAML file, we have defined a simple StatefulSet to deploy a PostgreSQL database. Unlike a Deployment, a StatefulSet. Job. On the 3rd of April 2023, the old registry k8s. Name Stays the Same. This page shows how to assign a memory request and a memory limit to a Container. RollingUpdate: The RollingUpdate update strategy implements automated, rolling update for the Pods in a StatefulSet. It manages the deployment and scaling of a set of Pods, and provides guarantee about the ordering and uniqueness of these Pods. Author: Matthew Cary (Google) Kubernetes v1. Overview of StatefulSets. A workload API object that manages stateful applications, such as databases. This issue creates a gap between when the application is ready and when Kubernetes thinks it is ready. The application is MySQL. A StatefulSet is a controller that helps you deploy and scale groups of Kubernetes pods. Objectives Create a PersistentVolume referencing a disk in your environment. You can use --help after the subcommand to get additional info about possible parameters (for example: kubectl get nodes --help). These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any. k8s. how=very --from-literal=special. yaml storageclass. Features and tools, such as Kubernetes Services, Jobs, and taints and tolerations, help admins manage pod and node deployment. StatefulSet. 04 Sep 2023 · 11 min read StatefulSets and Deployments are two Kubernetes API objects used to manage sets of identical Pods. g. Deploy Elasticsearch. This comes at a cost of slow scale ups and scale downs for. Scaling a StatefulSet refers to increasing or decreasing the number of replicas. Statefulset vs Deployment; StatefulSet and Deployment are both Kubernetes resources used for managing containerized applications, but they differ in. Before proceeding, make yourself familiar with the considerations. This controller runs Jobs -- components of a Kubernetes workload that execute specific tasks -- according to. The last section of the manifest defines our StatefulSet. network issue), for Deployment, a new Pod will be created on a different node (to follow your desired 1 replica), but for StatefulSet it will make sure to terminate the existing Pod before creating a new, so that there are never more than 1 (when you have 1 as desired number of replicas). Expose MySQL to other pods in the cluster at a known DNS. It is a Kubernetes resource, to manage stateful applications. Statefulsets is used for Stateful applications, each. 每个pod都有自己存储,所以都用volumeClaimTemplates,为每个pod都生成一个自己的存储,保存自己的状态 3. StatefulSet là resource cũng có thể nói là bản sao đặc biệt của ReplicaSet. Using a shell script we would call $ {HOSTNAME##*-} to get the index. En esta entrada vamos a tratar sobre aplicaciones Stateful en Kubernetes – Statefulset, el cual es un tipo de recurso que nos ofrece Kubernetes. Familiarity with volumes and persistent volumes is suggested. The kubelet uses liveness probes to know when to restart a container. Also, you will not have to create a PVCs in advance, and you will be able to scale it easily. You can use --help after the subcommand to get additional info about possible parameters (for example: kubectl get nodes --help). 1. This is the resource KEDA will scale up/down and setup an HPA for, based on the triggers defined in triggers:. Because the replicas field of the nacos StatefulSet is set to 2, In the cluster file only two nacos address. A stateful application requires pods with a unique identity (for example, hostname). In this example, we’ve defined a StatefulSet named “my-statefulset” with a headless service named “my-statefulset-headless”. template. As stated in the offical documentation of Kubernetes, the K8s-API will create new endpoints that map directly to the pods. The user can specify a different scheduler for the Pods of the DaemonSet, by setting the . Deployment manages creating Pods by means of ReplicaSets. Run a Stateless Application Using a Deployment; Run a Single-Instance Stateful Application; Run a Replicated Stateful Application; Scale a StatefulSet; Delete a. If you want to provide workload persistence using Kubernetes persistent storage, you can incorporate a StatefulSet into your. Yes, my metrics server is running fine. for all of your k8s troubleshooting needs, Komodor offers: Change. Resource Objects. StatefulSetは状態を保持する (ステートフルな)アプリケーションを管理するためのKubernetesオブジェクトだ。. This behavior doesn't apply when the entire StatefulSet is deleted and can be disabled by setting a StatefulSet's . . Comme un Déploiement, un StatefulSet gère des Pods qui sont basés sur une même spécification de conteneur. StatefulSet is not the same as PV+PVC. Skipping a pod deployment in statefulset. The HPA works on a control loop. To check your version of Kubernetes, run kubectl version. StatefulSetではこれを防ぐために、kubeletが落ちても新たにPodの自動起動をしない。 言い換えると、Podを手動で削除しない限り、新たなPodは起動されない。 Podを自動で起動してほしい場合. The deployment is made up of 2 Nginx web servers; both of them are connected to a persistent volume. $ kubectl get volumesnapshotdatas NAME AGE k8s-volume-snapshot-b1c06e67-1feb-11e9-8f35-0a580a30020a 34s With the snapshot in place, let’s go ahead and delete the Kafka StatefulSet and the associated PVC. Deployments in k8s do not keep state in their Pods by assuming the application is stateless. It will create three Pods named web-0,web-1,web-2. 1. Both Pod and Deployment are full-fledged objects in the Kubernetes API. This post talks about recent updates to the DaemonSet and StatefulSet API objects for Kubernetes. Jobs with fixed completion count - that is, jobs that have non null . zk-0 zk-1 zk-2See StatefulSet vs. One pod should be able to reach other pods with well-defined names. イメージ的にはPodTemplateを持つDeploymentにPVCも追加した感じ。. Like a Deployment, a StatefulSet manages Pods that are based on an identical container spec. Where the reclaim policy is Delete, the expectation is that the storage backend releases the storage resource that. apps. Deployment. One of the most powerful tools Kubernetes provides in this area are the securityContext settings that every Pod and Container manifest can leverage. all replicas are interchangeable — all pods has random DNS names and are unable to hold unique data on persistent storage;. Tweet. Ordering: Kubernetes StatefulSet ensures that each pod is created in a specific order, while Deployment does not. Before you begin This task assumes you have an application running on your cluster represented by a StatefulSet. When you revert the deployment of an upgraded binary version, the rollout process is reversed and a new set of Pods is deployed with the previous image version. 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. Two commonly used ones are Deployments and StatefulSets. Login to the MySQL pod and Verify: kubectl exec -it mysql-0 -- mysql -u root -p. Statefulset vs Deployment in k8s. StatefulSet is also a Controller but unlike Deployments, it doesn’t create ReplicaSet rather itself. Continue reading "Create statefulset MariaDB application in K8s" A StatefulSet is another Kubernetes controller that manages pods just like Deployments. The StatefulSet manifest should feel familiar—it looks a lot like a Deployment manifest! Instead of the volume field under a Deployment’s template spec, we define a VolumeClaimTemplate under the overall StatefulSet spec to describe how the workload will consume storage. MySQL Deployment on Kubernetes. Each StatefulSet replica gets its own PersistentVolumeClaim object. Using ConfigMap in StatefulSet. KEDA will monitor that service and based on the events that occur it will automatically scale your resource out/in accordingly. StatefulSet と PVC の関係まとめ. apps/mongo created Click Check my progress to verify the objective. In this article. replicas field. Rather, a deployment is a file that defines a pod's desired behavior or characteristics. We explore these features using Apache ZooKeeper and Apache Kafka StatefulSets and a Prometheus node exporter. We are now in the interesting part of this meal. yaml You should receive the following output: service/mongo created statefulset. StatefulSet で作成された Pod は、それぞれ単一の PV をマウントしています. Get Full-Length High-Quality DevOps Tutorials for Free - Subscribe Now. Familiarity with volumes is suggested, in particular PersistentVolumeClaim and PersistentVolume. Like a Deployment, a StatefulSet manages Pods that are based on an identical container spec. Por ejemplo, si creamos un StatefulSet. Orleans will run in Kubernetes without specific configuration, however, it can also take advantage of extra knowledge which the hosting platform can provide. Kubernetes has become the de-facto orchestration tool and initially it was supporting stateless applications, but stateful (data-driven) applications are very common and are critical to. The Airflow Operator creates and manages the necessary Kubernetes resources for an Airflow deployment and supports the creation of Airflow schedulers with different Executors. To check your version of Kubernetes, run kubectl version. Pic from k8s. This page shows how to run a replicated stateful application using a StatefulSet. Or the number of pods required to run your application properly based on the current usage. As a pod can have one or more containers. Compare Kubernetes StatefulSet vs. If you don’t specify the namespace, it gets deployed in the default namespace. If we need to update the application to a new version, we can change the fields in the Deployment YAML file. It is clearly explained in the documentation under Deleting the Statefulset: Deleting a StatefulSet through kubectl will scale it down to 0, thereby deleting all pods that are a part of it. Manages the deployment and scaling of a set of Pods, and provides guarantees about the ordering and uniqueness of these Pods. 6. 1. completions - can have a completion mode that is specified in . 9. You can pass in multiple key-value pairs. Every Kubernetes object also has a UID that is unique across your whole cluster. In this example, you’ll create a deployment resource with a podAffinity rule that requires scheduling the pods on nodes in the same AZ (availability zone). v1. In statefulsets each replica pod created has an index number starting from 0 and it will only setup the next replica if the previous one is running. The stable hostname is used to maintain a. Pods (and, by extension, containers) are, nevertheless, short-lived entities. If we execute the commands: kubectl get sts and kubectl get pods -l app=mysql , we see the cluster deployed. spec. Click a single StatefulSet to go to its detail page. As a Deployment, a StatefulSet manages Pods that are based on an identical container specification, but it maintains an identity attached to each of its pods. Create a new file and fill it with the following StatefulSet configuration then we explain what it does. Just like StatefulSets, Kubernetes Deployments let you define the state of the application, and the Deployment’s controller is responsible for maintaining this state. StatefulSet(stable-GA in k8s v1. It provides declarative updates for pods and their associated. As the name suggest the statefulsets are specifically used to make sure the app state is saved by each running pod. In K8s, StatefulSets are a higher-level abstraction over pods that provide guarantees about the ordering and uniqueness of pods. Additionally, we are creating a Persistent Volume using the volumeClaimTemplate and using it in the StatefulSet to store the PostgreSQL data. 3. Pods. A simple hack is to parse the hostname of the pod which is in the format of $ (statefulset name)-$ (ordinal). StatefulSets will ensure the same PersistentVolumeClaim stays bound to the same Pod throughout its lifetime. kubectl rollout restart sts <name> to restart the pods, one at a time. Kubernetes Deployment. Pods created by a StatefulSet have a unique and stable network identity. This ensures it’ll be postgres-2 that’s destroyed first. The new pod will automatically spin up with correct configuration. Dynamic volume provisioning allows storage volumes to be created on-demand. kubectl rollout restart sts <name> to restart the pods, one at a time. This task shows how to scale a StatefulSet. StatefulSet ensures that, at any time, there is at most one Pod with a given identity running in a cluster. All of the other parts are ready and we will just plug in the engine and we will be ready to hit the road. spec. 安定したネットワーク識別子. io will be frozen and no further images for Kubernetes and related subprojects will be pushed to the old registry. Ordinal Index. DaemonSet Kubernetes has several ways to deploy applications, including deployments, DaemonSets and StatefulSets. Issue is only with statefulset. StatefulSet is the workload API object used to manage stateful applications. apps "web" created. We like to dynamically assign a value (that's derived from the ordinal index) to the pod's label and later. Kustomize is a standalone tool to customize Kubernetes objects through a kustomization file. Let us see how StatefulSet differs from Deployment-1. Persistent storage: Kubernetes StatefulSet can manage the creation and deletion of PVCs while Deployment can’t. Nota: Los StatefulSets son estables (GA) en la versión 1. A StatefulSet lets you manage one or more Pods – all running the same application code – where the Pods rely on having a distinct identity. For example, you can only have one Pod named myapp-1234 within the same namespace, but you can have one Pod and one Deployment that are each named. You can also update the object's resource requests and limits, labels, and annotations. Access spring security through kubernetes ingress. Statefulset is generally used with a distributed applications that require each node to have a persistent state and the ability to configure an arbitrary. This makes it easier to manage and maintain each component. First sentence in the documentation: "The Horizontal Pod Autoscaler automatically scales the number of Pods in a replication controller, deployment, replica set or stateful set". spec): missing required field "serviceName" in io. Create a MySQL Deployment. Author: Deepak Kinni (VMware) PersistentVolume (or PVs for short) are associated with Reclaim Policy. Full k8s cluster consists of 4–5 services on the control plane and two on worker nodes. The Replica set can contain one or more pods and each pod can have one or more instances. Un StatefulSet es el objeto de la API workload que se usa para gestionar aplicaciones con estado. And here comes the role of “Headless service” to deliver that. Node affinity is a set of rules used by the scheduler to determine where a pod can be placed. I have tested its working by autoscaling one of my Deployment. The manifest files do not have the namespace added to them. Deploymentなど、StatefulSet以外のリソースを使う必要がある。Node Deployment: K8s DaemonSet achieves deploying multiple instances of an application in all nodes. statefulset. A Kubernetes StorageClass is a Kubernetes storage mechanism that lets you dynamically provision persistent volumes (PV) in a Kubernetes cluster. This behavior doesn't apply when the entire StatefulSet is deleted and can be disabled by setting a StatefulSet's . This is important because many stateful applications have data initialization routines to perform, masters to elect, and quorum to achieve. In a production. apps. Kubernetes is a powerful container orchestration tool that provides a variety of resources for managing containerized applications. The example topology has a single primary server and multiple replicas, using asynchronous row-based replication. We want to deploy service sets to machine "areas" so that services are running close to resources they manage. Each pod runs specific containers, which are defined in the spec. DaemonSet. What it boils down to is that Deployment will create Pods with spec taken from the template. This creates GKE instances and joins them into a single Kubernetes cluster named cockroachdb. yaml You should receive the following output: service/mongo created statefulset. For a rolling update, the Deployment's maxUnavailable will be in effect, even if the PodDisruptionBudget specifies a smaller value. I have tested its working by autoscaling one of my Deployment. Manages the deployment and scaling of a set of Pods, and provides guarantees about the ordering and uniqueness of these Pods. Check. In a stateful containerized application, data must be persistent, retained and easy to access outside the application. name field. yaml, we can run the following command to run both of them: kubectl apply -f mongo-statefulset. If you want to delete just the StatefulSet and not the pods, use --cascade=false. This way you could either, name the stateful-set according to the classes, i. This is required by RabbitMQ for clustering, and as mentioned in the Kubernetes documentation, has to be created before the Stateful Set. apps is the apiGroup for the deployment resource. In statefulsets each replica pod created has an index number starting from 0 and it will only setup the next replica if the previous one is running. Kubernetes is a powerful container orchestration tool that provides a variety of resources. Issue is only with statefulset. how=very --from-literal=special. also during upgrades and. Let’s use the UI for our first example. The Deployment is once again using a stable. k8s. Deployment vs Statefulset. In Prefect Cloud, go to Blocks, hit the + button, and select the Kubernetes Job block. 04 Sep 2023 · 11 min read. Understanding ReplicaSetsIt will trigger them all at once. Deployments and StatefulSets are the most common way to scale workloads with KEDA. DaemonSet. StatefulSets are designed to run stateful applications in Kubernetes with dedicated persistent storage. yaml. Here is a summary of the process: You, as cluster administrator, create a PersistentVolume backed by physical storage. When pods run as part of a StatefulSet, Kubernetes keeps state data in the persistent storage volumes of the StatefulSet, even if the pods shut down. When you use a StatefulSet, Kubernetes terminates Pods in the opposite order to their creation. k8s. As Crou wrote, it is possible to do this operation with kubectl scale statefulsets <stateful-set-name> but this is an imperative operation and it is not recommended to do imperative operations in a production environment. They give Pods a stable identity and consistent ordering during scaling operations. We have now logged into the MySQL database. Each Pod in a StatefulSet derives its hostname from the name of the StatefulSet and the ordinal of the Pod. apiVersion: apps/v1 kind: StatefulSet metadata: name: web # this will be used as prefix in pod name spec: serviceName: "nginx" replicas: 2 # specify number of pods that should be running selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: k8s. 其實是分別由以下三種資訊所組成:. As Trident uses dynamic provisioning, we will specify a StorageClass, which must have been setup. One of the more powerful features of a StatefulSet is the use of persistent. To decide how to handle updates, StatefulSets use an update strategy defined in spec: updateStrategy. StatefulSets. Version the ConfigMap. Each time a deployment is triggered, whether manually or automatically, a deployer pod manages the deployment (including scaling down the old replication controller, scaling up the new one, and running hooks). If. Nota: Los StatefulSets son estables (GA) en la versión 1. Statefulset is generally used with a distributed applications that require each node to have a persistent state and the ability to configure an arbitrary number of nodes. if the node becomes unreachable (e. Deployment では、全てのPodで1個のPV をマウントしている違いがあります. Let’s now create the Deployment using the kubectl apply command: $ kubectl apply -f deployment. To execute our deployment, we need a service to access the above deployment. It allows you to define the Kubernetes Deployment or StatefulSet that you want KEDA to scale based on a scale trigger. This name will become the basis for the ReplicaSets and Pods which are created later. Deployment vs. You can use kubectl create configmap with the --from-literal argument to define a literal value from the command line: kubectl create configmap special-config --from-literal=special. Deploying a Stateful Application Using Kubernetes Statefulset. Ensures that all or some worker nodes run a copy of a pod. summary, it is possible to set min / max replicas for a statefulset using HPA. Currently the StatefulSets support only two kinds of update strategies:. . Before you begin You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your. Editor’s note: this post is part of a series of in-depth articles on what's new in Kubernetes 1. Resource objects typically have 3 components: Resource ObjectMeta: This is metadata about the resource, such as its name, type, api version, annotations, and labels. ; A Persistent Volume (PV) to allocate storage space for the database. status. Network identities: Kubernetes StatefulSet provides stable network identities for each pod, while Deployment doesn’t. We are creating a StatefulSet called postgresql-db with two pods (replicas: 2). StatefulSets vs. Deploying workloads as StatefulSet helps provide features like unique. Deploying a Stateful Application Using Kubernetes Statefulset. Now, a lot of support is available for running stateful applications with Kubernetes. KEDA will monitor that service and based on the events that occur it will automatically scale your resource out/in accordingly. If you are unsure about whether. template. ; When the number of eligible domains with match topology keys is less than minDomains, Pod topology spread treats global minimum as 0, and then the calculation of skew is performed. The above command will create a ReplicaSet with three replicas and manage the lifecycle of the pods. They both make it easy to orchestrate multiple. StatefulSetCondition] You should delete everything from the status field. Without dynamic provisioning, cluster administrators have to manually make calls to their cloud or storage provider to create new storage volumes, and then create PersistentVolume objects to represent them in Kubernetes. It specifies that there should be three replicas of the Deployment and that each pod should be labeled with app: nginx. Check. Like. A StatefulSet is a Kubernetes API object for managing stateful application workloads. service没有ClusterIP,是headlessservice,所以无法负载均衡,返回的都是pod名,所以pod名字都. You can also create Pods (containers. Kubernetes Deployment vs. yml2 Answers. In a stateful containerized application, data must be persistent, retained and easy to access outside the application. ymlDeployments and StatefulSets are the most common way to scale workloads with KEDA. Introduction A StorageClass provides a way for administrators to describe the "classes" of storage they offer. 2. Deployment. StatefulSets manage the creation, scaling, and deletion of pods. The application is MySQL. Scaling a StatefulSet refers to increasing or decreasing the number of replicas. –In the previous blog we created a stateless application, deployed with K8s resource Deployment, which allows one to replicate the application, but where data is lost when Pods are restarted, meaning there were no data consistency. A Deployment named nginx-deployment is created, indicated by the . We need to specify service instances to be deployed to different boxes, anti-affinity on pods, for high availability. There were no major changes to the API Object, other than the community selected name, but we added the semantics of “at most one pod per index” for deployment of the Pods in. The last section of the manifest defines our StatefulSet. It doesn't necessarily refer to the deployment of applications or services. The Deployment object not only creates the pods but also ensures the correct. I have updated my question with more details. A pod is the smallest deployable unit in Kubernetes which has a collection of containers. yml. spec. CronJob. Statefulset vs Deployment in k8s. Statefulset es un recurso que controla y gestiona en kubernetes uno o más Pods, pero entonces por qué no usar un Deployment te estarás preguntando?, entonces antes de continuar es mejor. In this example: A Deployment named nginx-deployment is created, indicated by the . As the name suggest the statefulsets are specifically used to make sure the app state is saved by each running pod. StatefulSetの概要. Elasticsearch is designed for cluster deployment. type=charm. kubectl delete sts --cascade=orphan <name> to delete the StatefulSet and leave its pods. Product. The init container is responsible for defining the zookeeper node unique ID. Kindly. It is an ordered and graceful deployment. A DeploymentConfig (DC) in OpenShift is more or less equivalent to a Kubernetes Deployment, nowadays.