An EKS cluster is a control plane that AWS runs, and nodes that run in our own account. The control plane (the API server, etcd, the controllers) runs in an account of AWS's: we never see its instances. The nodes are EC2 instances in our VPC. The creation needs, in this order: a network for the nodes; two IAM roles: …
Read MoreIn this part you'll let the pipeline deploy to an EKS cluster. The call you'll cover: call 6, job → EKS: the job deploys the image with the AWS credentials from Part 4. What it shows: Two worlds check the job, so it is refused twice before it gets in: IAM decides what the role may do in AWS: read the cluster's address; …
Read MoreIn this part you'll give the cluster a credential of its own, so its pods can pull the private image. The call you'll cover: call 7, cluster → Docker Hub: the node starting a pod pulls the image Part 5 deployed. The caller here is not the job. Part 5's last run was this call's refusal: pull access denied, since the …
Read MoreIn these labs we connect GitHub Actions to other services: allow GitHub Actions to push images to Docker Hub; allow GitHub Actions to log in to AWS; allow GitHub Actions to deploy to an EKS cluster; allow the EKS cluster to pull images from Docker Hub; allow GitHub Actions to post to Slack. New to GitHub Actions? Start …
Read MoreIn Kubernetes, a HorizontalPodAutoscaler(or HPA) automatically updates a workload resource (such as a Deployment or StatefulSet), with more pods. Scaling basics Horizontal scaling means run more processing units, where Vertical scaling means making a single processing unit more powerfull. (read more here) HPA scales …
Read MoreWhen you specify a Pod, you can optionally specify how much of each resource a container needs. Requests and limits Generally, you have these tools to control the resources that a pod will use: Resource Requests Resource Limits (which we'll demonstrate in another post) Resource Requests are evaluated before a pod is …
Read Morekubernetes cluster metrics When you run a pod, some load is laid on the node that runs it. The pod consume some of the memory and cpu power of that node. We'll use a tool called metrics-server to inspect resources. For minikube, the resource-server is available as an addon. Here's how to install it (my profile is …
Read MoreMotivation In many cases we want to keep configuration data about our applications. Examples: lodations of servers/services (URLs, domain names, IP addresses) directory/file locations on volumes.. credentials: user names, passwords, toekens etc. The idea is to decouple environment-specific configuration from your …
Read MoreJSONPath is a query language for querying values in JSON strings. It can help you navigate complex JSON values to retreive a specific value, or set of values. JSON in kubernetes You can instruct kubernetes to modify the output to json: 1$> kubectl get pods 2NAME READY STATUS RESTARTS AGE 3my-pod 1/1 Running 0 12s 4$> …
Read MoreMotivation -Service deployments and batch processing pipelines are often multi-dimensional entities. For example, you may have multiple micro-services per tier. Labels Labels are key/value pairs that are attached to objects, such as pods or deployments Labels can be used to organize and to select subsets of objects. …
Read More