logo
Published on

EKS

Authors
  • avatar
    Name
    Bowen Y
    Twitter

Workloads

  1. PodTemplates: Templates for creating pods. Generally, you don't create these directly but define them in other resources like Deployments.
  2. Pods: Basic execution units in Kubernetes. Create with kubectl run or define in a YAML file and use kubectl apply.
  3. ReplicaSets: Ensure a specified number of pod replicas are running. Created as part of Deployments.
  4. Deployments: Manage stateless applications, handle ReplicaSets. Create with a Deployment YAML file.
  5. StatefulSets: Like Deployments but for stateful applications. Create with a StatefulSet YAML file.
  6. DaemonSets: Ensure all (or some) Nodes run a copy of a Pod. Created with a DaemonSet YAML file.
  7. Jobs: Run a task once to completion. Create with a Job YAML file.
  8. CronJobs: Schedule Jobs to run at specific times. Create with a CronJob YAML file.

Workload Support

  1. PriorityClasses: Define the importance of Pods. Created with a PriorityClass YAML file.
  2. HorizontalPodAutoscalers: Automatically scale the number of Pods. Created with an HPA YAML file.

Cluster Architecture

  1. Cluster: Represents the Kubernetes cluster itself.
  2. Nodes: Worker machines in Kubernetes. Managed through AWS EKS.
  3. Namespaces: Logical separation within your cluster. Create with kubectl create namespace.

API Extensions

  1. APIServices: Extend Kubernetes API. Created as part of API extension server setup.
  2. Leases: Lightweight resource to coordinate across a cluster. Often managed internally by Kubernetes.
  3. RuntimeClasses: Define different container runtimes. Create with a RuntimeClass YAML file.
  4. FlowSchemas and PriorityLevelConfigurations: Manage API request prioritization.

Service and Networking

  1. Services: Abstract way to expose applications. Create with a Service YAML file.
  2. Endpoints: IP addresses to reach a Service. Often managed by Kubernetes itself.
  3. EndpointSlices: Scalable version of Endpoints. Managed by Kubernetes.
  4. Ingresses: Manage external access to services. Create with an Ingress YAML file.
  5. IngressClasses: Define types of Ingresses.

Config and Secrets

  1. ConfigMaps: Key-value pairs for configuration. Create with a ConfigMap YAML file.
  2. Secrets: Store sensitive data. Create with a Secret YAML file.

Storage

  1. PersistentVolumeClaims (PVCs): Request storage resources. Created by users.
  2. PersistentVolumes (PVs): Represents storage in the cluster. Created by admins.
  3. StorageClasses: Define types of storage offered. Created by admins.
  4. VolumeAttachments: Represents attachment of a volume to a node.
  5. CSIDrivers and CSINodes: Represent Container Storage Interface (CSI) drivers and nodes.

Authentication and Authorization

  1. ServiceAccounts: Accounts for processes in pods. Create with a ServiceAccount YAML file.
  2. ClusterRoles and ClusterRoleBindings: Define permissions across a cluster.
  3. Roles and RoleBindings: Define permissions in a namespace.

Policy

  1. LimitRanges: Impose constraints on resource use.
  2. ResourceQuotas: Enforce limits across a namespace.
  3. NetworkPolicies: Define network access rules.
  4. PodDisruptionBudgets: Limit disruptions to applications.

Extensions

  1. CustomResourceDefinitions (CRDs): Extend Kubernetes resources.
  2. MutatingWebhookConfigurations and ValidatingWebhookConfigurations: Manage admission webhooks.

Each of these resources is typically defined in a YAML file and created with kubectl apply -f [filename]. The specific structure of the YAML file varies based on the resource type. You can find templates and examples for these in the Kubernetes documentation or online resources tailored to EKS.