Switch to Istio CNI by default#3135
Conversation
|
@juliusvonkohout For GCP hostPath check, https://github.com/kubeflow/manifests/blob/9825950c84fd5d29617bc8ad6c0d15a6432e7635/common/istio-cni-1-24/istio-install/base/install.yaml#L3009 am i suppose to spin the cluster in GCP/GKE ad check the paths? will that cost me? |
I know the paths and that it is correct for gcp. The question is how we can enable both cni directories at the same time. Since the default ones are correct for Azure, Kind and others. |
|
See #3061 (comment). We need to support both paths at the same time somehow. |
|
Okay, looking into this
|
|
Why This Multi-Path Approach woukd Work? The patch adds both the standard path (/opt/cni/bin) and the GCP-specific path (/home/kubernetes/bin) as separate volume mounts in the Istio CNI DaemonSet.
@juliusvonkohout what do you think, can this be a potential approach? |
Yes, could work. Do you mind testing it on GCP? I think there is a small free 4GB node available by default if you have a gmail adress. You jus tneed to install Istio, so it should be enough. I can then later also test on some GCP clusters. |
|
Do you mind fixing python3: can't open file '/home/runner/work/manifests/manifests/tests/gh-actions/test_pipeline.py': [Errno 2] No such file or directory in https://github.com/kubeflow/manifests/actions/runs/15084697684/job/42405783624?pr=3135 in a separate PR ? I think the file has just been renamed since we have v1 and v2 kfp tests. CC @kunal-511 to help |
|
@madmecodes The test_pipeline.py has been changed to test_pipeline_v2.py in #3129 |
this is updated #3136 |
35a911b to
83ac6c9
Compare
GKE Istio CNI Multi-Path Testing ReportProblem StatementIstio CNI fails on Google Kubernetes Engine (GKE) because Solution ApproachImplemented multi-path support by mounting both standard ( Testing Environment
Commands Used and Results1. Cluster Setupgcloud container clusters create istio-cni-test \
--zone us-central1-a \
--num-nodes 2 \
--machine-type e2-standard-2 \
--disk-size 20GB2. Install Kubeflow with Istio CNIwhile ! kustomize build example | kubectl apply --server-side --force-conflicts -f -; do
echo "Retrying..."; sleep 10;
done3. Observed Failurekubectl logs -n kube-system istio-cni-node-8fc7jOutput: 4. Verified Multi-Path Volume Mountskubectl describe pod -n kube-system istio-cni-node-8fc7jOutput: 5. Attempted Configuration Fixkubectl patch daemonset istio-cni-node -n kube-system --type='json' \
-p='[{"op": "add", "path": "/spec/template/spec/containers/0/env/-",
"value": {"name": "CNI_BIN_TARGET_DIRS",
"value": "/host/opt/cni/bin,/host/home/kubernetes/bin"}}]'Result: Environment variable set but ignored by CNI installer. 6. Verified GCP Path Functionalitykubectl debug node/gke-istio-cni-test-default-pool-6c013e50-k2bx -it --image=busyboxCommands in debug pod: ls -la /host/home/kubernetes/bin/ # Shows CNI binaries present
touch /host/home/kubernetes/bin/test-file && rm /host/home/kubernetes/bin/test-file
echo "GCP path is writable"Output: GCP path is writable ✓ Key Findings✅ What Works
❌ Current LimitationIstio CNI installer hardcoded behavior: Despite environment variable Root Cause Analysis
|
… instead of standard Istio. Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
…ctories. Currently it only uses /host/opt/cni/bin Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
22ac963 to
4502462
Compare
Signed-off-by: madmecodes <ayushguptadev1@gmail.com>
|
@juliusvonkohout are the comments correct? |
|
/lgtm thank you |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: juliusvonkohout The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |


Switch to Istio CNI by default
This PR changes the default Istio installation to use Istio CNI instead of standard Istio.
Key benefits include:
Changes include:
This change is part of the broader Rootless Kubeflow initiative #2528
and follows up on previous work #3061.