For K3s:
- Ensure master nodes have enough memory for etcd, Kubernetes API server, etc.
- You should consider increasing the subnet size for the cluster CIDR so that you don’t run out of IPs for the pods. You can do that by passing the
--cluster-cidr
option to K3s server upon starting. - You should consider the same for the service CIDR. In K3s, the largest supported
service-cidr
mask is /12 for IPv4, and /112 for IPv6. - Add the flag
--etcd-arg=quota-backend-bytes=5368709120
to all master nodes to increase the max size of the embedded etcd datastore to 5 GiB. 8 GiB is a suggested maximum size for normal environments. - Protocol buffers used by gRPC have a maximum size limit of < 2 GiB for any data in serialized form. This would only affect requests to Kubernetes API server with very large response body.
- Kubernetes API server configuration
--request-timeout
defaults to a minute, and to prevent resource exhaustion you should keep it at1m0s
.