Users have experienced OOM-killed calico-ipam processes when using multus+calico in certain clusters (likely higher scale). This causes intermittent issues when creating containers. The calico-ipam plugin was being OOM-killed in the multus-cni DaemonSet pod because the 50Mi memory limit was too low.
the limit hit in the log: "memory: usage 51200kB, limit 51200kB". So it requires to increase the memory request/limit on multus.
1. Log into the TCA Web UI.
2. Go to Infrastructure > CaaS Infrastructure.
3. Click target workload cluster from the Cluster list.
4. Click Add-ons.
5. Click three-dots before the multus addon and click Edit.
6. Click the SAVE button on the Add-on Configuration dialog.
7. Click the NEXT button.
8. Click Custom Resources (CR) on the top.
9. Edit yaml file on the right-hand pane as shown here:
10. Click DEPLOY CHANGES at the bottom.
11. Wait for the addon status to change to a Provisioned state.
1. Login to the TCA-CP where the Management cluster is deployed as admin user.
2. Run the below command as root to ssh to workload cluster
su -
ssh capv@<workload cluster endpoint IP>
3 Check if multus pods have the new resources.
kubectl get pod -n kube-system -l name=multus -o jsonpath="{range .items[*]}{.spec.containers[*].resources}{'\n’}"
Note: The change via command line will be overwritten by update on TCA UI. So you need to edit Multus Addon on UI after upgrade as soon as possible.
su -
ssh capv@<management cluster endpoint IP>
kubectl -n <workload cluster name> get secret multus-tca-addon-secret -o "jsonpath={@.data.values\.yaml}"|base64 -d > multus.yaml
cat <<EOF>> multus.yaml
resources:
limits:
cpu: 300m
memory: 150Mi
requests:
cpu: 200m
memory: 100Mi
EOF
VALUES_YAML=`base64 -w0 multus.yaml`
kubectl patch secret -n <workload cluster name> multus-tca-addon-secret --patch '{"data":{"values.yaml":"'$VALUES_YAML'"}}'
exit
ssh capv@<workload cluster endpoint IP>
kubectl get pod -n kube-system -l name=multus -o jsonpath="{range .items[*]}{.spec.containers[*].resources}{'\n'}"