Kind replicaset. What did you expect? Mongodb-agent ready and cluster OKHello, I have a . Kind replicaset

 
 What did you expect? Mongodb-agent ready and cluster OKHello, I have a Kind replicaset  The pods will scale automatically when the threshold value of the pod CPU will reach the maximum value as mentioned in the manifest file it depends on our requirement based on the incoming traffic

Deployments and Deployment Configurations. Admission control is fundamental to policy enforcement in Kubernetes. yaml’, and we will be submitting this. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for. spec 部分。. labels: my-label: my-value. Pod :1つ以上のコンテナからなる集合体(Kubernetes上でコンテナを管理する最小単位). Deployment および DeploymentConfig について. kind: ReplicaSet; The main difference between replicationController and replicaSet is, the replicaSet requires a field named selector as a child of main spec field. I found this trick though till I could find a better way. name of the ReplicaSet is part of the basis for naming those Pods. Reading the documents it is not clear if the default behaviour should. template. If any of the pods in the group die or get evicted, the ReplicaSet controller creates a replacement. Pod Environment variable; apiVersion: v1 kind: Pod metadata: name: static-web labels: role: myrole spec: containers: - name: nginx image: nginx env: - name: DB_NAME value: MyDB - name: DB_URL valueFrom: configMapKeyRef: name: config-url key: db_url - name: DB_PASSWORD valueFrom: secretKeyRef: name:. Replace with the desired MongoDB deployment name -- this should be the same as in the previous step. Replica sets provide redundancy and high availability and are the basis for all production deployments. By default, Kubernetes Operator uses the default namespace. I can't really think of more information to share. It provides the same function (through. If you’re using any version of kubectl <= 1. For ReplicaSets, the kind is always a ReplicaSet. Keeping the Pods running with ReplicaSets. Figure 13. so you must need to add template field . helm install enterprise-operator mongodb/enterprise-operator --namespace mongodb --create-namespace. If you use Deployments to manage your Kubernetes workloads, and most people do, then they will leave behind one ReplicaSet for each change you make. allowWatchBookmarks requests watch events with type "BOOKMARK". Under the hood, Deployment creates a ReplicaSet which in turn creates pods on our cluster. Note. I found this with trial and error, so this is the diff file. Pods can define tolerations, which allow them to be. If you want to clean it manually you can just paste that in your console. local:27017] on first connect [MongoError: getaddrinfo ENOTFOUND mongodb-mongodb-replicaset-1. 4. Rollback to an earlier Deployment revision if the current state of the Deployment is not stable. Deployments are generallyused with replicaset as they are used to manage replicsets. This helps to ensure that the desired state of the system is maintained. yml). Table 7. Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. It creates and deletes Pod(s) as needed to reach the desired number. Use the same way to create deployment and modify kind to ReplicaSet in the yaml file and remove fields specific to deployment. - kubernetes-exercises/replica_set. For example. First, check the existing replica set using the following command. Once the MongoDB resource is created, the operator will deploy a new. See Writing a Deployment Spec for more details. Let’s use a ReplicaSet to scale up to five instances of our kuard container. selector ,否则它将被 API 拒绝。. root@cyberithub:~# kubectl get pods -l tier=nginx NAME READY STATUS RESTARTS AGE replicaset-1-nhvlq 1/1 Running 0 16m replicaset-1-mrj7v 1/1 Running 0 16m. labels 必须匹配 . When the control plane creates new Pods for a ReplicaSet, the . 2. - apiVersion: apps/v1 kind: ReplicaSet name: router-default-66d5cf9464 uid: d81dd094-da26-11e9-a48a-128e7edf0312 controller: true blockOwnerDeletion: true. Selectors allow users to choose a specific subset of objects based on a shared set of labels. It's a cheap solution but it's not that big an issue either. Create a deployment manifest yaml file - deployment. Sorted by: 1. Pada Kubernetes 1. metadata. metadata. Menulis manifest ReplicaSet. apps/v1 blockOwnerDeletion: true controller: true kind: ReplicaSet name: nginx-d-5b686ccd46 uid: 7eb8fdaf-bfe7-4647-9180-43148a036184 resourceVersion: "556" More. As in the case of Deployment, a controller is created, but unlike Deployment, it does not create a ReplicaSet , but instead it itself creates replicas from pods and assigns them names. kubectl create -f kubia-replicaset. But changing. By using the command kubectl delete rs <rs name>, where rs name is the name of your ReplicaSet, you can destroy ReplicaSets. This included ReplicationController, ReplicaSet, StatefulSet, DaemonSet, and Deployment. Config, h * Client) (* AppsV1Client, error) NewForConfigAndClient creates a new AppsV1Client for the given config and client. Query parameters; Parameter Type Description; allowWatchBookmarks. This is an essential mechanism for managing and scaling the Pods in a Kubernetes cluster. Hence the yaml should be as below. The selector is used to identifying the Pods it can acquire. Extract the pod template hash from the replica set. Once our ReplicaSet template gets ready. The config is saved to the Kubernetes Secret. The spec part is mandatory in the ReplicaSet object. ReplicaSet There is no direct way I could find to create this from kubectl. Phần chính trong định nghĩa đối tượng ReplicaSet nằm trong phần spec với định. In Kubernetes 1. First, copy the sample config to a new directory:. Possible values include “Orphan”, “Foreground”, or “Background”. Now, we know that the deployment we created earlier on has a configuration report. 1. ReplicaSetについて. Refer to the first lines of the frontend. ReplicaSet is a Kubernetes object that ensures that a specified number of replicas of a pod are running at any given time. In kubernetes 1. Delete the ReplicaSet Let's clean up before we move on. kubectl get replicaset. spec section is similar to the ReplicaSet’s, defining the pod template for each replica. ReplicaSetについて. Similarly, if the ReplicaSet discovers an extra pod in the group, it will randomly delete one of the Kubernetes replicas in circulation. Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. ObservedGeneration reflects the generation of the most recently observed ReplicaSet. boolean. Now let’s inspect the ownerReferences of the ReplicaSet. If a Pod from the ReplicaSet fails, it automatically creates an additional Pod from the. apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-app-b spec: replicas: 2 selector: matchLabels: app: app-b Describe a Scenario that We Should Use ReplicaSet Without Deployment. With ReplicaSet you define number of replicas you want to run for a specific application or a service. kind: ReplicaSet. ReplicaSet. Query parameters; Parameter Type Description; continue. 1 Answer. As an example, you could be deploying a MySQL database with a primary instance and two read-only replicas. Rest all is same as the replication controller. Share. message' element in the kubectl get pod output: message: '0/1 nodes are available: 1 node (s) had taint {node-role. Deployment is an abstraction over ReplicaSet. metadata. selector` to make it work. 9 the API version apps/v1 on the ReplicaSet kind is the current version and is enabled by default. name values hence they both have their own isolated resources. replicasetは特定のラベルのついたpodを監視している。 さっき見たみたいにレプリカ数が不足している場合は新たにpodが作成される。 それに対し、レプリカ数が過剰に存在している場合は該当するpodの内のpodをレプリカ数と同じ数になるように削除する。55 Thomson Place 2nd Floor Boston, MA 02210 Tel: +1 617 837 6840apiVersion: apps/v1 kind: ReplicaSet metadata: name: myapp2-rs spec: replicas: 3 # 3 Pods should exist at all times. allowWatchBookmarks requests watch events with type "BOOKMARK". yaml file are mounted in the Prometheus container in the /etc/config folder. This will likely be a ReplicaSet (which is generated by the Deployment). yml apiVersion: apps/v1 kind: ReplicaSet metadata: name: nginxwebserver spec: replicas: 3 # Desired. This is awkward and complex. Figure 13. In order to do that, you need to create a kind: Service for each of your ReplicaSet. In the simplest case, a. spec. 说到ReplicaSet对象,得先说说ReplicationController(简称为RC)。. We no do deploy or manual changes. Asking for help, clarification, or responding to other answers. The spec. A ReplicaSet is a process that runs multiple instances of a Pod and keeps the specified number of Pods constant. The difference comes with the usage of selectors to replicate pods. ReplicaSet 管理所有标签匹配与标签选择器的 Pod。. The number of pods that have labels matching the labels of the pod template of the replicaset. The label selector is the core grouping primitive in Kubernetes. metadata. The template of the replicaset looks as follows. The name of a ReplicaSet must be a valid DNS subdomain value, but this can produce unexpected results for the Pod hostnames. Replace <domain-rs-1>, <domain-rs-2>, and <domain-rs-3> with the external FQDNs of the MongoDB replicaset members. 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. By. You can of course also create a . In the simplest case, a deployment just creates a new replication controller and lets it start up pods. It's very strange. spec. 1. Deleting ReplicaSet. Similar to a replication controller, a ReplicaSet is a native Kubernetes API object that ensures a specified number of pod replicas are running at any given time. For ReplicaSets, the kind is always a ReplicaSet. For example a deployment selects a group of pods by a. Deploy and Configure Ops Manager Resources. A ReplicaSet’s purpose is to maintain a stable set of replica Pods running at any given time. The following command installs the MongoDB Enterprise Kubernetes Operator in the mongodb namespace with the optional --create-namespace option. yml manifest and use kubectl create or kubectl apply to create the deployment. This is different from vertical. 9 版本中,API. The above. For ReplicaSets, the kind is always a ReplicaSet. We have some Openshift Deployments. Query parameters; Parameter Type Description; allowWatchBookmarks. cat replicaset. The difference between a replica set and a replication controller is that a replica set supports set-based selector requirements whereas a replication controller only supports. The following steps assume that you have already. Use the following command to fetch all configuration reports: kubectl get configauditreports -o wide. We also define a number of labels through which we can identify it. apiVersion: apps/v1 #version of the API to use kind: ReplicaSet #What kind of object we're deploying metadata: #information about our object we're deploying name: nginx-replicaset spec: #specifications for our object replicas: 2 #The number of pods that should always be running selector: #which pods the replica set should be responsible for. list or watch objects of kind ReplicaSet. Setup KinD. Then you need to define the other. Then, it’ll gradually move the Pods from the old ReplicaSet to the new one at a controlled rate. The. name of the ReplicaSet is part of the basis for naming those Pods. Building on replication controllers, OpenShift Container Platform adds expanded support for the software development and deployment lifecycle with the concept of deployments. Then create a Deployment object by running the following command: 1. 1. It default to 1 if it was not. The name of a ReplicaSet must be a valid DNS subdomain value, but this can produce unexpected results for the Pod hostnames. template. Finally, the "spec" is the most important part of our YAML file. 2. This post is the 4th in our Kubernetes training series, providing DevOps engineers with an introduction to Docker, Kubernetes, and Octopus. apiVersion and kind specify the API version and resource type, respectively, indicating that this is a ReplicaSet. See Writing a Deployment Spec for more details. StatefulSet is also a Controller but unlike Deployments, it doesn’t create ReplicaSet rather itself. What did you do to encounter the bug? Steps to reproduce the behavior: Deploy manager v0. The kind of this object is ReplicaSet; In the metadata part, we define the name by which we can refer to this ReplicaSet. When the control plane creates new Pods for a ReplicaSet, the . this is my error: resource mapping not found for name: "my-replicaset" namespace: "" from "replicasets. The differences in this manifest are: Using kind: Deployment to state the resource type. Yes, that's right. name of the ReplicaSet is part of the basis for naming those Pods. cluster. deployment "my-nginx" created. mongod --replSet replicaset --port 27018 --bind_ip localhost,<hostname(s)|ip address(es. You are defining the name and labels of the. As a kind of Pod manager running in your cluster, a ReplicaSet makes sure the desired number and type of a certain Pod is always up and running. Once our ReplicaSet template gets ready. Core. docker run <image id from build> Share Improve this answerHere is the sample template for single PersistentVolumeClaim with name : claim1 apiVersion: "v1" kind: "PersistentVolumeClaim" metadata: name: "claim1" spec: accessModes: - "ReadWriteOnce"For ReplicaSets, the kind is always a ReplicaSet. When you create a ReplicaSet, you are essentially telling Kubernetes that you want a specific pod replicated x amount of times. To create and set up the Kubernetes replica set, we have to follow the below steps: 1. Para los ReplicaSets, el tipo es siempre ReplicaSet. Here is my VS code, as you can see there are several errors, this code follows the courses code to the T. When you are managing ReplicaSet using Deployment You can also use a Deployment to create a new revision of a ReplicaSet and then migrate existing pods. For ReplicaSets, the kind is always a ReplicaSet. This branch is 1 commit ahead of go-oauth2:master . the pod label in pod spec should match with the selector. If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. NOTE: kind, api_version, name, and namespace will be overwritten by corresponding values found in the configuration read in from the src file. The basic format is <server_name> <keytype> <base64-encoded_key>, one entry per line. list or watch objects of kind ReplicaSet. metadata. metadata . 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. string. ReplicaSetCondition describes the state of a replica set at a certain point. Means that GKE does not recognize ReplicaSet within apiVersion: apps/v1 I checked my cluster (I normally use deployments), pulled my replicaSet and it shows up as: apiVersion: extensions/v1beta1 kind: ReplicaSetThe kind of this object is ReplicaSet; In the metadata part, we define the name by which we can refer to this ReplicaSet. kubectl delete deployment $ {our-deployment-name} And this seems to delete the deployment called our-deployment-name fine. spec. MySQL 5. Try using one envFrom with multiple entries under it as below: - name: integration-app image: my-container-image envFrom: - secretRef: name: intercom-secret - secretRef: name: paypal-secret - secretRef: name: postgres-secret - secretRef: name: redis-secret. You can see this information in the 'status. In this example: A Deployment named nginx-deployment is created, indicated by the . (kind: Deployment)list or watch objects of kind ReplicaSet. When you deploy multiple replica sets using this method, you must make sure they each have a unique value for scramCredentialsSecretName. Remember the Replicaset definition from the beginning? Its first two fields apiVersion and kind specify the group/version and kind (=resource type). By evaluating pod. For Deployment, ReplicaSet, Replication Controller, only scale, if the number of existing replicas matches. Writing a ReplicaSet manifest. Below is the YAML I'm using for the deployment . Table 10. 2. When the control plane creates new Pods for a ReplicaSet, the . Get all pods with the labels plus the pod template hash. It is instrumental in managing vast databases. Each new ReplicaSet updates the revision of the Deployment. Every one of them is a member of the Kubernetes ReplicaSet. labels: Invalid value: map[string]string{"type":"july-26"}: selector does not match template labels. The operator creates a Pod with one init container and two app containers on it. This is because when the ReplicaSet creates new Pods, it adds the labels from the spec. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. The ReplicaSet controller guarantees that a specified number of identical Pods is running at all times. # first-rs. Replication Controller and Replica Set do almost the same thing. Here’s a basic tutorial on how to scale an application using the vim terminal editor and adjusting the replicas property in a ReplicaSet configuration file: Step 1: Open the ReplicaSet configuration file in the vim terminal editor: $ vim my-rs. kind: ReplicaSet → We have defined the kind as the replica set which helps kubectl to understand that the file is used to create a replica set. metadata. Kind you can write code to find the Pod manager/controller depending on the type (ReplicaSet, DaemonSet, etc). metadata. 2. When the control plane creates new Pods for a ReplicaSet, the . Use the kubectl create and kubectl apply commands to create ReplicaSets. Deployments have two main disadvantages compared with StatefulSets and DaemonSets. @Jonas I did. You will get the following output: NAME SCANNER AGE CRITICAL HIGH MEDIUM LOW replicaset-mattermost-app-59d45 Trivy 4m33s 0 0 2 6. Labels are like tags that identify and categorize Kubernetes objects. kind: ReplicaSet; The main difference between replicationController and replicaSet is, the replicaSet requires a field named selector as a child of main spec. For example, by deploying OPA as an admission controller you can: Require specific labels on all resources. apiVersion: apps/v1 kind: ReplicaSet metadata: name: frontend labels: app: guestbook tier: frontend; The first two fields are straightforward and constant, so they never change. In this example: A Deployment named nginx-deployment is created, indicated by the . When I inpect the new running docker, I see that it runs not with the new parameters, but with the same. A pod is the smallest unit of deployment in Kubernetes, and it usually…My minikube version: v1. The container should be named as also make sure replicas counts are 4. 2 then MongoDBCommunity v6. ) . You could see the number of ReplicaSets. yaml error: unable to recognize "kubia-replicaset. The preceding commands delete the ReplicaSet and all the pods that it manages. As per the name, ReplicaSet is used for managing the replicas of our pods. Similarly, if the ReplicaSet discovers an extra pod in the group, it will randomly delete one of the Kubernetes replicas in circulation. For ReplicaSets, the kind is always just. Every one of them is a member of the Kubernetes ReplicaSet. . spec can be used such as minReadySeconds, paused and more. Please attempt to capture node logs with kind create cluster --retain, kind export logs, and file an issue with the logs uploaded. Horizontal Pod Autoscaling. list or watch objects of kind ReplicaSet. also, another suggestion don't use the Replicasets by default Deployment create the Replicaset in the background. spec is where you define the desired state and specifications for the ReplicaSet. For ReplicaSets, the kind is always a ReplicaSet. In this article. Let’s use a ReplicaSet to scale up to five instances of our kuard container. As with all other Kubernetes API objects, a ReplicaSet needs the apiVersion, kind, and metadata fields. below is the yaml file:kind: type of object trying to be created. As an alternative to using this procedure, you can use. By adjusting the value in the manifest and re-applying it, you can alter the number of copies (kubectl apply -f my-manifest. default. allowWatchBookmarks requests watch events with type "BOOKMARK". container image using a. Both are related to the limited control that deployments provide over how an application runs: Lack of granular control. (Several days). metadata. You would have those many replicas running at any point of time in the kubernetes cluster. replicas field in the manifest. - apiVersion: apps/v1 kind: ReplicaSet name: router-default-66d5cf9464 uid: d81dd094-da26-11e9-a48a-128e7edf0312 controller: true blockOwnerDeletion: true. ReplicaSetCondition describes the state of a replica set at a certain point. apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-2 spec: replicas: 2. spec can be used such as minReadySeconds, paused and more. When the control plane creates new Pods for a ReplicaSet, the . 特定の仕様でマシンにホストする必要があるポッドがあると仮定します (SSD の HD、物理的な場所、処理能力など)。. ReplicaSet YAML. The number of ready replicas for this replica set. kind: ReplicaSet → We have defined the kind as the replica set which helps kubectl to understand that the file is used to create a replica set. kubectl create -f kubia-replicaset. In the replica sets, we used the selector. 16 replicaset was moved to apps/v1 apiVersion from extensions/v1beta1. Replica Set use Set-Based selectors while replication controllers use Equity. 63 <none> 443/TCP 8m54s. We will create an example ReplicaSet using the below configuration, just like we created a Pod in part 3 of this series. Spinnaker acknowledges this relationship with the blue load balancer icon on a workload as shown here: You can also tell Spinnaker which Service objects a workload should be associated with for its lifetime using the. Kubernetes is only told what it can work with by the apiVersion and kind parameters, which should never be different. En la versión 1. 9 the API version apps/v1 on the ReplicaSet kind is the current version and is enabled by default. 它的主要作用是 确保Pod以你指定的副本数运行 ,即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会. For ReplicaSets, the kind is always a ReplicaSet. Create a ReplicaSet: kubectl create . The images transformation tutorial shows how to specify the default images transformer and customize the images transformer configuration. This is 100% reproducible on update from the. In Kubernetes, Admission Controllers enforce policies on objects during create, update, and delete operations. Bson all with version number 2. version() in the console it returns 4. yaml apiVersion: apps/v1 kind: ReplicaSet # ประเภทของ Resource metadata: name: first-rs # ชื่อของ ReplicaSet labels: app: first-rs # Label ของ. metadata: data about object at issue. template is the actual pod spec with which you. yaml. A ReplicaSet identifies new Pods to acquire by using its selector. This procedure allows you to set different settings for the replica set resource, such as overrides for statefulSet configuration. kubectl delete $ (kubectl get all | grep replicaset. 0. boolean. the ReplicaSet controller cant directly interact with Pods to perform exec or requests (only the kubelet can) possible workaround (might be too complex): the ReplicaSet controller chooses the Pods in the sample; the ReplicaSet controller "marks" these Pods to be probed; the kubelet probes the Pods and creates a Pod-event with the. The spec part is mandatory in the ReplicaSet object. . The above RS manifest file uses a ReplicaSet to run three copies of the my-image: latest container image. apiVersion and kind specify the API version and resource type, respectively, indicating that this is a ReplicaSet. com, mongo-replicaset-1. 3-py3-none-any. What did you do to encounter the bug? Steps to reproduce the behavior: Deploy manager v0. Assuming that you name the two with different values, the two deployment sets would also spin up isolated pods with same labels. 8. template. When the control plane creates new Pods for a ReplicaSet, the . metadata: name: my-replicaset. While Kubernetes, both natively and through ingress controllers, offers a number of ways to expose a service, we will use the standard Service resource of type LoadBalancer. Get replicaset. The . For ReplicaSets, the kind is always a ReplicaSet. Consider this: The pods are not directly managed by a deployment, but a deployment manages a ReplicaSet. In this article, we will look into how to connect Replicaset to a. I’ve been trying to deploy a ReplicaSet with YAML. Creating Pods and RCs works . Xin chào các bạn, chúng ta lại tiếp tục với series k8s basic để cùng nhau làm quen với k8s. name 是命名这些 Pod 的部分基础。 ReplicaSet 的名称必须是一个合法的 DNS 子域 值, 但这可能对 Pod 的主机名产生意外. Configuration Examples. 1. If a user-facing Pod fails or becomes overworked, the Deployment allocates work to a Pod from the ReplicaSet to maintain responsiveness. Its functionality is based on the notion of desired vs. The number of replicas is 3. This will give you a detailed explanation of the resource passed as an argument as well as the fields you can populate. 2. spec. Kubernetes 1. Why Deployment manages multiple ReplicaSets? The answer is Kubernetes wants to support rollback mechanism. selector ,否则它将被 API 拒绝。. First, let us confirm that no ReplicaSet is running in the default namespace: kubectl get rs # output: No resources found. StatefulSets address this by guaranteeing that each Pod in the ReplicaSet maintains its. Clients should not assume bookmarks are. name of the ReplicaSet is part of the basis for naming those Pods. The name of a ReplicaSet must be a valid DNS subdomain value, but this can produce unexpected results for the Pod hostnames. If a Pod from the ReplicaSet fails, it automatically creates an additional Pod from the. Nifty! Now that we’ve covered the first two fields we can move on to metadata:. selector. Kubernetes の実践. For example a deployment selects a group of pods by a. It is responsible for maintaining the desired state of a set of pods in a cluster. Now, let us create a ReplicaSet from an example from. Developed by MongoDB, MongoDBMulti Custom Resource Definition (CRD) makes it easy to run MongoDB replica sets across multiple Kubernetes environments and provides a declarative approach to deploying MongoDB, allowing users to specify the desired state of their deployment and letting the operator handle the details. The following command installs the MongoDB Enterprise Kubernetes Operator in the mongodb namespace with the optional --create-namespace option. docker-compose. ReplicaSet is a Kubernetes object that provides declarative scaling for Pods. apiVersion: extensions/v1beta1 kind: ReplicaSet metadata: name: frontend # these labels can be applied automatically # from the labels in the pod template if not set # labels: # app: guestbook # tier: frontend spec: # this replicas value is default # modify it according to your case replicas: 3 # selector can be applied automatically # from the. Because you need a deployment object - or other Kubernetes API objects like a replication controller or replicaset - that needs to keep the replicas (pods) alive (that's. Some possible values are Pod, ReplicaSet, Deployment and it is a CASE SENSITIVE string. Giới thiệu. Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. yaml": no matches for apps/, Kind=ReplicaSet . (Remember, a controller in Kubernetes is what. To keep Pod running continuously you must specify a task that will never finish. Deployments and Deployment Configurations. For ReplicaSets, the kind is always a ReplicaSet.