-
Bug
-
Resolution: Done
-
Normal
-
None
-
False
-
-
False
When integrating OpenShift Serverless with OpenShift Service Mesh (following https://docs.openshift.com/container-platform/4.9/serverless/admin_guide/serverless-ossm-setup.html#serverless-ossm-setup_serverless-ossm-setup) we see net-istio-controller-7b8b4687cd-mzks7 running out of memory during start-up. Even after adding additional memory it continues to getting OOMKilled
$ oc get pod net-istio-controller-7b8b4687cd-mzks7 -o json
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"annotations": {
"cluster-autoscaler.kubernetes.io/safe-to-evict": "true",
"k8s.v1.cni.cncf.io/network-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.129.2.243\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"k8s.v1.cni.cncf.io/networks-status": "[{\n \"name\": \"openshift-sdn\",\n \"interface\": \"eth0\",\n \"ips\": [\n \"10.129.2.243\"\n ],\n \"default\": true,\n \"dns\": {}\n}]",
"openshift.io/scc": "restricted",
"sidecar.istio.io/inject": "false"
},
"creationTimestamp": "2022-03-23T09:04:06Z",
"generateName": "net-istio-controller-7b8b4687cd-",
"labels": {
"app": "net-istio-controller",
"pod-template-hash": "7b8b4687cd",
"serving.knative.dev/release": "devel"
},
"name": "net-istio-controller-7b8b4687cd-mzks7",
"namespace": "knative-serving",
"ownerReferences": [
{
"apiVersion": "apps/v1",
"blockOwnerDeletion": true,
"controller": true,
"kind": "ReplicaSet",
"name": "net-istio-controller-7b8b4687cd",
"uid": "a458bb9e-1165-4625-a86c-aa81bdfba2f1"
}
],
"resourceVersion": "43000928",
"uid": "39eaa109-b891-4f10-9d70-86211a620873"
},
"spec": {
"containers": [
{
"env": [
{
"name": "SYSTEM_NAMESPACE",
"valueFrom": {
"fieldRef": {
"apiVersion": "v1",
"fieldPath": "metadata.namespace"
}
}
},
{
"name": "CONFIG_LOGGING_NAME",
"value": "config-logging"
},
{
"name": "CONFIG_OBSERVABILITY_NAME",
"value": "config-observability"
},
{
"name": "METRICS_DOMAIN",
"value": "knative.dev/net-istio"
}
],
"image": "registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:ff83481b41f502ae6c7e629ed0aae8692fc7efc180034890650d93784dea0a0a",
"imagePullPolicy": "IfNotPresent",
"name": "controller",
"ports": [
{
"containerPort": 9090,
"name": "metrics",
"protocol": "TCP"
},
{
"containerPort": 8008,
"name": "profiling",
"protocol": "TCP"
}
],
"resources": {
"limits": {
"cpu": "1",
"memory": "900Mi"
},
"requests": {
"cpu": "300m",
"memory": "400Mi"
}
},
"securityContext": {
"allowPrivilegeEscalation": false,
"capabilities": {
"drop": [
"KILL",
"MKNOD",
"SETGID",
"SETUID",
"all"
]
},
"readOnlyRootFilesystem": true,
"runAsNonRoot": true,
"runAsUser": 1001010000
},
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"volumeMounts": [
{
"mountPath": "/var/run/secrets/kubernetes.io/serviceaccount",
"name": "kube-api-access-hqlgh",
"readOnly": true
}
]
}
],
"dnsPolicy": "ClusterFirst",
"enableServiceLinks": true,
"imagePullSecrets": [
{
"name": "controller-dockercfg-pknb2"
}
],
"nodeName": "ip-10-0-167-88.eu-west-3.compute.internal",
"preemptionPolicy": "PreemptLowerPriority",
"priority": 0,
"restartPolicy": "Always",
"schedulerName": "default-scheduler",
"securityContext": {
"fsGroup": 1001010000,
"seLinuxOptions": {
"level": "s0:c32,c9"
}
},
"serviceAccount": "controller",
"serviceAccountName": "controller",
"terminationGracePeriodSeconds": 30,
"tolerations": [
{
"effect": "NoExecute",
"key": "node.kubernetes.io/not-ready",
"operator": "Exists",
"tolerationSeconds": 300
},
{
"effect": "NoExecute",
"key": "node.kubernetes.io/unreachable",
"operator": "Exists",
"tolerationSeconds": 300
},
{
"effect": "NoSchedule",
"key": "node.kubernetes.io/memory-pressure",
"operator": "Exists"
}
],
"volumes": [
{
"name": "kube-api-access-hqlgh",
"projected": {
"defaultMode": 420,
"sources": [
{
"serviceAccountToken": {
"expirationSeconds": 3607,
"path": "token"
}
},
{
"configMap": {
"items": [
{
"key": "ca.crt",
"path": "ca.crt"
}
],
"name": "kube-root-ca.crt"
}
},
{
"downwardAPI": {
"items": [
{
"fieldRef": {
"apiVersion": "v1",
"fieldPath": "metadata.namespace"
},
"path": "namespace"
}
]
}
},
{
"configMap": {
"items": [
{
"key": "service-ca.crt",
"path": "service-ca.crt"
}
],
"name": "openshift-service-ca.crt"
}
}
]
}
}
]
},
"status": {
"conditions": [
{
"lastProbeTime": null,
"lastTransitionTime": "2022-03-23T09:04:06Z",
"status": "True",
"type": "Initialized"
},
{
"lastProbeTime": null,
"lastTransitionTime": "2022-03-23T09:06:19Z",
"message": "containers with unready status: [controller]",
"reason": "ContainersNotReady",
"status": "False",
"type": "Ready"
},
{
"lastProbeTime": null,
"lastTransitionTime": "2022-03-23T09:06:19Z",
"message": "containers with unready status: [controller]",
"reason": "ContainersNotReady",
"status": "False",
"type": "ContainersReady"
},
{
"lastProbeTime": null,
"lastTransitionTime": "2022-03-23T09:04:06Z",
"status": "True",
"type": "PodScheduled"
}
],
"containerStatuses": [
{
"containerID": "cri-o://7e33a5a2cf828461cc40e12ca322c5d780273e10ab6353bcd6e57bebbf181799",
"image": "registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:ff83481b41f502ae6c7e629ed0aae8692fc7efc180034890650d93784dea0a0a",
"imageID": "registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:bbfa04c9f6b234dc993b4116da5438005bd69ff32a944276bbafcd4f9175de8a",
"lastState": {
"terminated": {
"containerID": "cri-o://7e33a5a2cf828461cc40e12ca322c5d780273e10ab6353bcd6e57bebbf181799",
"exitCode": 137,
"finishedAt": "2022-03-23T09:06:18Z",
"reason": "OOMKilled",
"startedAt": "2022-03-23T09:06:12Z"
}
},
"name": "controller",
"ready": false,
"restartCount": 4,
"started": false,
"state": {
"waiting": {
"message": "back-off 1m20s restarting failed container=controller pod=net-istio-controller-7b8b4687cd-mzks7_knative-serving(39eaa109-b891-4f10-9d70-86211a620873)",
"reason": "CrashLoopBackOff"
}
}
}
],
"hostIP": "10.0.167.88",
"phase": "Running",
"podIP": "10.129.2.243",
"podIPs": [
{
"ip": "10.129.2.243"
}
],
"qosClass": "Burstable",
"startTime": "2022-03-23T09:04:06Z"
}
}
The logs of the respective pod look as following:
$ oc logs net-istio-controller-7b8b4687cd-mzks7
2022/03/23 09:10:42 Registering 4 clients
2022/03/23 09:10:42 Registering 4 informer factories
2022/03/23 09:10:42 Registering 9 informers
2022/03/23 09:10:42 Registering 2 controllers
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.818925424Z","caller":"logging/config.go:116","message":"Successfully created the logger."}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.818961351Z","caller":"logging/config.go:117","message":"Logging level set to: info"}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.818974148Z","caller":"logging/config.go:79","message":"Fetch GitHub commit ID from kodata failed","error":"\"KO_DATA_PATH\" does not exist or is empty"}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.818989333Z","logger":"net-istio-controller","caller":"profiling/server.go:64","message":"Profiling enabled: false"}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.823965295Z","logger":"net-istio-controller","caller":"leaderelection/context.go:46","message":"Running with Standard leader election"}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.832762343Z","logger":"net-istio-controller","caller":"sharedmain/main.go:202","message":"Starting configuration manager..."}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.875967373Z","logger":"net-istio-controller","caller":"metrics/metrics_worker.go:76","message":"Flushing the existing exporter before setting up the new exporter."}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.876030004Z","logger":"net-istio-controller","caller":"metrics/metrics_worker.go:91","message":"Successfully updated the metrics exporter; old config: <nil>; new config &{knative.dev/net-istio net_istio_controller none 0 <nil> <nil> false 0 }"}
{"severity":"INFO","timestamp":"2022-03-23T09:10:42.87605062Z","logger":"net-istio-controller","caller":"profiling/server.go:102","message":"Profiling enabled: true"}
{"level":"info","ts":1648026642.932907,"logger":"fallback","caller":"injection/injection.go:61","msg":"Starting informers..."}
Only with about a memory limit of 2 Gi it starts to remain stable and won't crash anymore
- is documented by
-
SRVKS-926 [DOC] Document how users can utilize secret filtering for Net-Istio
-
- Closed
-
- links to