- Understand and check Service Quota of ECS/Fargate and other related services
- Cluster
- CDK for ECS: blog
Please check https://aws.github.io/aws-eks-best-practices/ for more comprehensive EKS best practice!
- Think about multi-tenancy, isolation for different environment or different workload
- Isolation at account level using AWS organization
- Isolation at the network layer ie. different VPC & different cluster
- Use different Nodes Group (Node pool) for different purpose/category e.g. create dedicated node groups for Operational tools such as CI/CD tool, Monitoring tool, Centralize logging system.
- Separate namespace for different workload
Reliability | Principles
These notes are supplementing my another guide about Minimal Elastic monitoring stack
We need session-manager plugin and AWS CLI packages installed:
# Generic, basic /usr/local/etc/telegraf.conf file for FreeBSD | |
# Gathers some basic metrics and transmits them to cloudwatch | |
# Be sure to set the region below | |
[agent] | |
interval = "10s" | |
round_interval = true | |
metric_batch_size = 1000 | |
metric_buffer_limit = 10000 | |
collection_jitter = "0s" |
This is how you would create a livable FreeBSD instance on EC2 by hand. The smart thing to do is to automate most of these actions. But I do it this way so you can see and understand all the different techniques. I want to create FreeBSD instances in EC2 and I want some of the management benefits that come from native AWS technologies like CloudWatch. It can be done, but it takes a bit of extra work because FreeBSD isn't Linux, and AWS doesn't directly support FreeBSD.
Before we go far, we will want some things setup in AWS IAM and VPC. I assume you have already created a VPC, decided what network numbers you're going to use, created a subnet and so on. If you haven't done those basic things, you need to go do them. I also assume you've created an ssh key and uploaded it to your AWS account.
- name: CALICO_IPV4POOL_CIDR | |
value: "172.16.0.0/16" | |
- name: IP_AUTODETECTION_METHOD | |
value: "interface=eth1" |
[Transport] | |
PingInterval=3 | |
PingTimeout=10 | |
CompressionLimit=384 | |
EasyFindId=xxx | |
EasyFindPin=zzz | |
[General] | |
MainFrameWidth=640 | |
MainFrameHeight=480 | |
SSLClientCert= |
Some applications do not properly handle fractional scaling after xrandr
, in my case I'm using Mate environment
$ cat /etc/X11/Xsession.d/45xrandr-custom
if [ "x$DESKTOP_SESSION" = "xmate" ] || [ "x$XDG_SESSION_DESKTOP" = "xmate" ]; then
/usr/bin/xrandr --output eDP-1 --scale 1.5x1.5 --brightness 0.7 --mode 1920x1080
fi
There are multiple scheduling options available in Kubernetes:
- Taints & tolerations - https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
- Affinity & anti-affinity - https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
- Setting
nodeSelector
&nodeName
attributes - https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ - Pod topology spread constraint - https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/