While ReplicaSets can be used independently, today they're mainly used by Deployments as a mechanism to orchestrate Pod creation, deletion and updates. Understanding Deployment s. This document provides strategies for replica set deployments and describes common architectures. Avoid complexity when possible, but let your application requirements dictate the architecture. Kubernetes Documentation. Published Nov. Typically license costs constitute to be about 40% and so with license-free standby replica the secondary will be about 40% less expensive. yml. ReplicaSetは指定された数のPodを複製し、実行してくれる。. Declarative config management. However, a Deployment is a higher-level concept that manages ReplicaSets and provides declarative updates to pods along with a lot of other useful features. A ReplicaSet, as the name implies, is a set of replicas (Pods) maintained with their Revision history. affinity. In this case, you select a label that is defined in the Pod template (app: nginx). Kind you can write code to find the Pod manager/controller depending on the type (ReplicaSet, DaemonSet, etc). This naming is consistent, so you can make sure you always have. To delete all 3 objects (Pod, ReplicaSet and Deployment), please execute the following command. Deployments. The main difference between a Replica Set and a Replication Controller right now is the selector support. Say we have d. You can expand a managed domain to have more than one replica set per Microsoft Entra tenant. So, Replicaset ensure replicas of pods are available whereas deployment are reponsible for managing different versions of the application. 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. 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ư. # kubectl describe rs soaktestrs Name: soaktestrs Namespace: default Image(s): nickchase/soaktest Here you see that when you first created the Deployment, it created a ReplicaSet (nginx-deployment-2035384211) and scaled it up to 3 replicas directly. ReplicaSet ReplicaSet 的目的是维护指定数量的 Pod,常用做保障指定数量 Pod 的可用性 Deployment Deployment 是一个用来管理 ReplicaSet 的更高级概念,某种程度上我们不应该操作 ReplicaSet,而是直接使用 Deployment。Deployment 拥有 Rollout & Rollback 功能,方便我们管理。 StatefulSet StatefulSet 用来管理有状态的应用,其会. Ta thấy kết quả trả về có 1 ReplicaSet có tên là myapp-deployment-549fd4bf6c. See moreDeployment resources enable declarative updates of Pods and ReplicaSets. - type: Available status: 'False'. The interesting thing here is that when there is pod that actually matches the selector labels of the RS without. When you see Replica Controller is mentioned in one the docs or other tutorials - refer to it as ReplicaSet AND consider using Deployment instead. Deployment creates ReplicaSet with the number of replicas=3. If a node is added/removed from a cluster, DaemonSet automatically adds/deletes the pod. Kubernetes creates a new ReplicaSet each time after the new Deployment config is deployed and. The ReplicaSet configuration defines a number of identical pods required, and if a pod is evicted or fails, creates more pods to compensate for the loss. selector section so that new replicaset and deployment can be run while old one still taking traffic. However, more sophisticated selection rules are possible, as. Horizontal scaling means that the response to increased load is to deploy more Pods. It's mainly used by Deployment as a mechanism to orchestrate pod creation, deletion and updates. kubectl -n eks-sample-app describe service eks-sample-linux-service. A replica set is a core Kubernetes object called ReplicaSet. While ReplicaSets can be used independently, today it’s mainly used by Deployments as a mechanism to orchestrate. Pod baru menjadi siap atau dapat diakses (siap selama setidaknya MinReadySeconds). Check the status of the rollout to see if it succeeds or not. Context. Its purpose is to maintain the specified number of Pod instances running in a cluster at any given time to prevent users from losing access to their application when a Pod fails or is inaccessible. Additionally, it's worth considering if you can use Deployment instead of directly using ReplicaSet. The standard replica set deployment for a production system is a three-member replica set. Enter the replica set name and click the Convert button. Choose the deployment node from the list in the command output. At a minimum, Deployment for an. Create credentials for the Kubernetes Operator or configure a different secret storage tool. Deployment is the easiest and most used resource for deploying your application. It manages the deployment and scaling of a set of Pods, and provides guarantee about the ordering and uniqueness of these Pods. 18 the kubectl run will no longer create deployments but pods. A replica set is a group of MongoDB deployments that maintain the same data set. . A standalone mongod instance is useful for testing and development. We will create an example ReplicaSet using the below configuration, just like we created a Pod in part 3 of this series. Exposing the ReplicaSet. And only after some googling I found this post on Medium:. ReplicaSet は Pod を作成して管理するが、 ReplicaSet が Pod を所有しているわけではない. mongosh --port 28015. It ensures that the desired number of replicas (PODs with the application running), as mentioned while creating the Replicaset, is always maintained. ReplicaSets are the smart way to. Reload to refresh your session. K8s Deployment object encompasses the Replicaset K8s object. When you increase the replica count, Kubernetes will start new pods to scale up your service. Vì vậy, ta nên sử dụng Deployment khi muốn có ReplicaSet. a deployment (called web in this example), a replicaset (web-65899c769f), a pod (web-65899c769f-dhtdx). k8s控制器--Replicaset和Deployment 一、Replicaset控制器 2. The ReplicaSet is responsible to manage the Pods. e. Deployment – A Deployment is the most common way to get your app on Kubernetes. Or just strip the name out to get the index at the end. Ok, when you specified the "kind" of artifact and run the command apply over k3s, It creates a group(s) of Pods, ReplicaSet, Deployment, or another artifact. every Kubernetes object has its own requirements. It can. To make changes in your current deployment you can use kubectl rollout pause deployment/YOUR_DEPLOYMENT. Create a new OpenShift Container Platform project. This is needed for rolling upgrade, rollback functionsWhen you make any change in deployment, you’ll see there’s a new replicaset created. This annotation is set by Kubernetes. Create a deployment. g. Two important columns of this output are: DESIRED displays the desired number of replicas of the application, which you define when you. 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. 🔹 Pod: A pod is the smallest deployable unit in Kubernetes, representing a single instance of a running process. tier=backend. Deployment works one level above ReplicaSet object. Pod に障害が発生し、オートヒーリングを実施した際にも、同一のPVを引き続き mount. Ops Manager displays the Editing Replica Set view. After it's paused you can make necessary changes to your configuration and then resume it by using kubectl rollout resume deployment/YOUR_DEPLOYMENT. you can list all the pods in custom-namespace. The major difference between a ReplicaSet and a Replication Controller right now is the. It will create Deployment object in imperative way. The following Deployment definition deploys four pods with nginx as their hosted application:Select the feature compatibility set . The major components of a deployment are the deployment template, the persistent volumes and the service. In addition, each one of the above controllers has it's own purpose. They let you perform rolling updates of ReplicaSets, where Pods are rescheduled. Create a Deployment to rollout a ReplicaSet. Creating a Kubernetes ReplicaSet. But the replicas attribute on the Deployment object is actually related to this object. trafficSplitMethod - Traffic split method string. also, another suggestion don't use the Replicasets by default Deployment create the Replicaset in the background. It also provides control when we have to. The Deployment can then manage the cleanup of older unused ReplicaSet s. The Deployment is scaling down its older ReplicaSet(s). spec. Below is the yaml file for Deployment. In the case of a Job, this option is ignored. In this article. It's important to note that Deployment objects are used to manage stateless applications. Convert an existing standalone mongod instance into a three-member replica set. StatefulSet (stable-GA in k8s v1. spec. このリソースは直接使用することは少ないが、次に出てくるDeploymentを抑える上で理解が進むのでやっていこう。. Deployments configure apps in a generic way. A replica set, also known as a cluster, provides redundancy and availability. 1. You can create a replica set configuration object in mongosh environment, as in the following example: rsconf = {. Hot Network QuestionsBased on the configuration you deployed with, both the deployment. Deployment and replicaset id are same only pod id is different than previous pod. While ReplicaSets can be used independently, today they're mainly used by Deployments as a mechanism. Step 4: Viewing live updates from the cluster. @HunzlaSheikh When you run kubectl delete -f render. 0. You'll start by creating a ReplicaSet manifest in YAML format. Ta thấy kết quả trả về có 1 ReplicaSet có tên là myapp-deployment-549fd4bf6c. Improve this answer. Use kubectl to list information about the deployment. When both configured some unexpected behaviour might arise. Main difference (besides that one is using ReplicationController and the other using ReplicaSet as you rightly pointed out) is that. In the case of a Job, update parallelism only if the current parallelism value matches. For example, where we previously created a single instance of the Pod, we might create a Kubernetes Deployment YAML example to tell Kubernetes to manage a set of replicas of that Pod — literally, a ReplicaSet — to make sure that a certain number of them are always available. selector field defines how the created ReplicaSet finds which Pods to manage. g. 27. Summary. When you updated the Deployment, it created a new ReplicaSet (nginx-deployment-1564180365) and scaled it up to 1 and waited for it to come up. Replica-Sets replicate and manage pods, as well. Let's deploy your front-end application using a deployment object. The standard replica set deployment for a production system is a three-member replica set. ReplicaSets can be used independently. By default, Kubernetes keep 10 replica sets for each deployment, which means you can go back 9 versions prior. So, Replicaset ensure replicas of pods are available whereas deployment are reponsible for managing different versions of the application. Agora, vamos mudar a. For the value smi, the percentage traffic split is done at the request level by using a service mesh. The ReplicaSet creates Pods in the background. delete a Deployment to delete this replicaset. They let you perform rolling updates of ReplicaSets, where Pods are rescheduled without any service downtime. This replica will further create a pod with name web-app-<replica-set->-<pod-id>. ReplicaSet – A ReplicaSet creates a stable set of pods, all running the same workload. When you create a Deployment in Kubernetes, a ReplicaSet is created automatically. The main advantage of deployments is to automatically update your. To create a ClusterIP service (default), use the following command: $ kubectl expose deployment nginx-deployment –name my-nginx-service –port 8080 –target-port=80. Declarative way, edit this line in your Yaml file: replicas: 2. In other words, a ReplicationController makes sure that a pod or a homogeneous set of pods is always up and available. create a deployment. We will create a ReplicaSet to ensure there is always 3 instances of a nginx. To get the deployment used to generate a pod, have to look at the pod yaml or describe the pod: kubectl get pod -n {namespace} {pod-name} -o yaml Look for the "ownerReferences" section. If a Pod from the ReplicaSet fails, it automatically creates an additional Pod from the. ロールアウトの再実行. true ← (default) wait_sleep. It can automate the. It specifies that there should be three replicas of the Deployment and that each pod should be labeled with app: nginx. Replica sets provide redundancy and high availability and are the basis for all production. 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. The difference is in the arguments passed to the command. It uses a template to describe what each Pod must contain. 15, 2023, 3:18 p. kubectl apply -f dp. create a deployment. The ReplicaSet config file has two important features: Pod Template: A template for new Kubernetes pods. Method 2: Configuring a MongoDB Replica Set for Deployment and Testing. spec. To use kubectl delete as an imperative command, pass the object to be. To scale up set --replicas=1 (or any other required number) accordingly. If you already have one or more database deployments, click Create. Avoid complexity when possible, but let your application requirements dictate the architecture. A replica set contains several data bearing nodes and optionally one arbiter node. But when I edit this deployment using the command kubectl edit deployment my-dep2, only changing the version of busybox image to 1. The Deployment can manage multiple ReplicaSets in order to perfom rolling update of the. You could see the number of ReplicaSets. In the case of a Job, this option is ignored. A Deployment is a higher-level resource that provides a declarative way to manage and update pods. In your scenario, the replicaset currently uses Selector app=nginx-app,pod-template-hash=b8b875889. The v1. To create a replica said execute the following command. When you create a ReplicaSet, you are essentially telling Kubernetes that you want a specific pod replicated x amount of times. Whether you’re rolling an update or rollbacking one, using the deployment helps you handle Pod instances better. 9) is a Kubernetes resource used to manage stateful applications. host. To learn more about replica sets, see the Replication Introduction in the MongoDB manual. Deployment resources within Kubernetes have simplified container deployments, and they are one of the most used Kubernetes resources. Terraform by-default uses Deployment for ReplicaSet. template. I guess Deployments and ReplicaSets will. A Deployment creates a ReplicaSet and manages the lifecycle of the Pods controlled by the ReplicaSet. 8. View the details of the deployed service. This hostname can be a hostname, an FQDN, an IPv4 address, or an IPv6 address. 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. Number of seconds to sleep between checks. As mentioned in the previous section, there are two ways to define or configure a ReplicaSet; directly through a YAML configuration file or through a deployment. This label ensures that child ReplicaSets of a Deployment do not overlap. Let's understand the differences between Deployment, ReplicaSet, and Pod. Since the Kubernetes v1. To deploy a replica set using an object, you must: Have or create an Ops Manager instance or a Cloud Manager organization. ReplicaSet :同じ仕様のPodを期待する数に維持するオブジェクト. Deployment and ReplicaSet (replacing the legacy resource ReplicationController). In kubernetes where pods are controlled by the replicaSet, if you kill a pod it will again be recreated. ReplicaSet then fulfills its purpose by creating and deleting Pods as needed to reach the desired number. We can also roll out an app via a ReplicaSet but a deployment resource give us a declarative application update. The following steps describe the contents of each section in that view. 4. A ReplicaSet’s purpose is to maintain a stable set of replica Pods running at any given time. 8. While ReplicaSets can be used independently, today they’re mainly used by Deployments as a mechanism to orchestrate Pod creation, deletion and updates. Deploy ReplicaSet. This is actually happening only for one specific ReplicaSet. When a Deployment is changed, a new ReplicaSet is created. Deployment Patterns for MongoDB Replica Set. replicas field. 1、Replicaset概述. selector field defines how the created ReplicaSet finds which Pods to manage. It’s possible to set more complex rules for pod selection, but. So i need to used version in . A ReplicationController ensures that a specified number of pod replicas are running at any one time. Deployment with name backend is created indicated by metadata. In this case, you select a label that is defined in the Pod template (app: nginx). How can I diagnose this further?. In docs about owners and dependents it says:. When to use a ReplicaSet. You would have those many replicas running. For all intents and purposes just use Deployments now. there is a Kubernetes Deployment that recreates it. Add an arbiter to give a replica set an odd number of voting members to prevent election ties. A Deployment is a higher-level resource meant for deploying applications and updating them declaratively, instead of doing it through a ReplicationController or a ReplicaSet, which are both considered lower-level concepts. StatefulSet is also a Controller but unlike Deployments, it doesn’t create ReplicaSet rather itself. It scales up 7 because 25% of 25 (your maxSurge value) is 6. A deployment creates replicaset and replicaset in turn creates pod. Deployments and deployment configs are enabled by the use of native Kubernetes API objects ReplicaSet and ReplicationController, respectively, as their building blocks. You switched. You can update image from v1 to v2. consider the deployment is being updated to a later version of nginx image, as part of the upgrade it creates a new replicaset in the background which uses same selector but with new pod-template-hash, meaning the selector for the new. Note that we recommend using Deployments instead of directly using Replica Sets, unless you require custom update orchestration or. Instead we use Deployment to manage a ReplicaSet. The next part in the manifest is the selector field. To start with the deployment of the new cluster, go to the deploy option in the top right corner. From the table, you see one Kubernetes deployment. To manually delete a ReplicaSet, run the following command: kubectl delete rs <ReplicaSet_NAME> --cascade=false Next steps. As per the name, ReplicaSet is used for managing the replicas of our pods. DeploymentはReplicaSetを生成、管理し、ReplicaSetはPodの生成、管理をする。 コンテナイメージの変更などのアップデートがあった際には、新規にReplicaSetを生成し、旧ReplicaSetから新ReplicaSetへPodが置き換えられていく。(ローリングアップデート)1. ReplicaSet's purpose is to maintain a stable set of replica Pods running at any given time and it checks how many pods need to maintain bases on which it creates. Il a ensuite poursuivi la montée en puissance du. It is required for deployment to identify it's respective Replicaset. kubectl label nodes <node> <key>=<value>. ownerReferences pointing to your Deployment (owner) and by design they should be removed first from Kubernetes 1. functionality, because unlike kubectl rolling-update, they are declarative, server-side, and have additional features. 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. 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 . ReplicaSet は、管理すべき Pod の集合・一覧を Label によってフィルタリング・識別し、クラスタ内で動作する Pod を追跡するのに. The ReplicaSet creates Pods in the background. Allowed values: pod, smi. This is how the deployment is usually rolled out. apps/myapp restarted. ¶ The Advanced Configuration Options section allows you to set MongoDB runtime options for each MongoDB process in your deployment. To work with Namespace, you need to add --namespace flag to k8s commands. Tiếp. They are composed of the following separate API objects:. As per the name, ReplicaSet is used for managing the replicas of our pods. When you create a Deployment, a ReplicaSet resource is created underneath. » Prerequisites. How to create a Deployment. Superseded by the Deployment and ReplicaSet APIs. Use this procedure to create a new replica set in a member Kubernetes cluster in a multi-Kubernetes-cluster deployment. It manages the deployment of. The ReplicaSet config file has two important features: Pod Template: A template for new Kubernetes pods. 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. Metadata. A replica set is a group of mongod instances that maintain the same data set. 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. This means that a. You can use the delete command to delete an object from a cluster: delete <type>/<name>. template) is changed. Convert a Standalone mongod to a Replica Set. Sometimes, Kubernetes sets the value of ownerReference automatically. x ReplicaSet. 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. vi d. 8 to deploy our software in a cloud provider. The Scheduler, that is in charge of the pod resource allocation, commnd the kubelet, which reside on every worker nodes,. Accordingly Replicaset is owned by Deployment Alternatives to ReplicaSet: Deployment (recommended). A Deployment resource uses a ReplicaSet to manage the pods. For the sake of simplicity and clarity, you may want to choose the first one, as in the following command; mongosh --port 27017. Pods (and, by extension, containers) are, nevertheless, short-lived entities. This document provides strategies for replica set deployments and describes common architectures. Although ReplicaSet 's main purpose is to maintain a stable set of replica Pods, it's not a kubernetes object that is commonly created, at least not explicitly. In the MongoDB Atlas UI, click Database in the sidebar. Note: a Deployment’s rollout is triggered if and only if the Deployment’s pod template (i. Also, the template used to create the Pods will be specified in the Deployment YAML file. 7. For Deployment, ReplicaSet, Replication Controller, wait for the status value of ready_replicas to change to the number of replicas. yaml. A ReplicaSet is a Kubernetes object that runs multiple instances of a pod and ensures a certain number of pods is running at all times. Kubernetes ReplicaSet. Un ReplicaSet (ensemble de réplicas en français) a pour but de maintenir un ensemble stable de Pods à un moment donné. Kubectl Scale use cases. 9k 45 151 238 asked Mar 25, 2016 at 12:56 David Knell 997 1 9 10 1 I am having the same question at the moment. 4. 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. 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. This is where PDB s provide the added advantage over the Replicaset. When you increase the replica count, to scale up your service. When you updated the Deployment, it created a new ReplicaSet (nginx-deployment-1564180365) and scaled it up to 1 and waited for it to come up. 1. Now we have created a deployment and need to verify if the Nginx web servers were deployed correctly. Note: A Deployment that configures a ReplicaSet is now the recommended way to set up replication. Replication controller is kinda imperative, but replica sets try to be as declarative as possible. Clean up Policy. In general, Deployment is a more powerful and feature-rich resource than ReplicaSet. The smallest unit of deployment, a Pod, runs containers. Hay nuevos Pods disponibles y listos (listo por lo menos MinReadySeconds). So the following command: k create deploy nginx --image nginx. A ReplicaSet is one of the Kubernetes controllers that makes sure we have a specified number of pod replicas running. 8 user guide shows how to create a deployment in. revisionHistoryLimit is an optional field that specifies the number of old ReplicaSets to retain to allow rollback. Kubernetes allows the implementation of HPA both as a controller and an API resource. yaml kubectl apply -f d. Their sole purpose is to run container. Optional. In this case, you select a label that is defined in the Pod template (app: nginx). For a particular service. 3. 3. apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx. By default, 10 old ReplicaSets will be kept, however its ideal value depends on the frequency and stability of new Deployments. Objectives Create an nginx deployment. By default, every Deployment is set to 10 for reserving the old. 2 Answers. This will likely be a ReplicaSet (which is generated by the Deployment). 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. For example, you define how many replicas ( pods) of your app you want to run in the. While ReplicaSets can be used independently, today they’re mainly used by Deployments as a mechanism to orchestrate Pod creation, deletion and updates. if you delete a Deployments / Services, etc. Kubernetes deployment drawbacks. Specifically, we define the desired state of the application using DeploymentSpec. It gives us fine-grained control over how and when a new pod version is rolled out. For example, if you want to have four pods running at all times and one of them suddenly crashes, a ReplicaSet will ensure that the crashed one is removed and will spin up a new, hopefully healthy, one. The . Stateless applications are those that do not. You will almost never create this directly. These sets provide redundancy and fault tolerance. However, more sophisticated selection rules are possible, as. The Deployment can manage multiple ReplicaSets in order to perfom rolling update of the. A ReplicaSet is a set of identical backup Pods maintained on the backend side to ensure a Pod is always available. spec. ReplicaSet có số lượng pod mong muốn (DESIRED) là 10, và số lượng Pod hiện tại (CURRENT) là 10. I put an example on my gitlab page that you can also find in Kubernetes Blog. You cannot create replicaset using the command line. Here you see that when you first created the Deployment, it created a ReplicaSet (nginx-deployment-2035384211) and scaled it up to 3 replicas directly. If you check ReplicaSet after deploying a Deployment you will notice a ReplicaSet of the same name at the Deployment. Both Daemon Sets, Replica Sets and Deployments are declarative, meaning that you describe how you want things to be (e. name=backend. Cet objet est souvent utilisé pour garantir la disponibilité d'un certain nombre identique de Pods. Deleting ReplicaSet. If you run kubectl get pods <pod_name> -o yaml where <pod_name> is a pod created by ReplicaSet, you will see owner reference. t. In summary, Controller reads the Deployment spec, forwards the pod configuration to ReplicaSet and then it creates the pods with. In the case of a Job, update parallelism only if the current parallelism value matches. 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. kubernetes. @Jonas I did. Deleting the Pod will kick in the current deployment configuration to be applied by Kubernetes to restart and redeploy the Pod. yaml file; We will create a Deployment configuration file that defines the same state as our ReplicaSet example. A ReplicaSet’s purpose is to run a specified number of pods at any given time. You can define a ReplicaSet using a YAML file. spec. ET. We run the following command in k8s. kubectl scale deployment <deployment-name> --replicas=3 My. string. 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. We can also roll out an app via a ReplicaSet but a deployment resource give us a declarative application update. Here the replicas field is set to 3, but you can set it to whatever fits your application.