Implementation:Kubeflow Kubeflow Kubectl Health Check
| Knowledge Sources | |
|---|---|
| Domains | Kubeflow, Platform Deployment, Verification, Operations |
| Last Updated | 2026-02-13 00:00 GMT |
Overview
Concrete tool for verifying Kubeflow deployment health provided by kubectl commands and port-forward access.
Description
This implementation uses kubectl get pods -A to verify all pods across Kubeflow namespaces are healthy, kubectl port-forward to establish local access to the Central Dashboard through the Istio ingress gateway, and targeted kubectl commands to inspect individual component status. It provides a systematic checklist of commands that operators execute after deployment to confirm end-to-end platform functionality.
Usage
Run these verification commands immediately after completing all deployment and multi-user configuration steps. These commands can also be used as operational health checks on an ongoing basis.
Code Reference
Source Location
- Repository: No specific in-repo source; these are operational verification commands
- File: N/A (kubectl is an external tool)
Signature
kubectl get pods -A
kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
Import
# kubectl must be installed and configured (see Prerequisites Validation)
# No additional installation required
which kubectl
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| -A (all namespaces) | flag | Yes | Lists pods across all namespaces to get a full cluster view |
| svc/istio-ingressgateway | service reference | Yes | The Istio ingress gateway service to port-forward for Dashboard access |
| -n istio-system | namespace flag | Yes | Namespace where the Istio ingress gateway is deployed |
| 8080:80 | port mapping | Yes | Maps local port 8080 to the ingress gateway port 80 |
| Fully deployed Kubeflow platform | cluster state | Yes | All prior deployment steps must be completed |
Outputs
| Name | Type | Description |
|---|---|---|
| Pod status listing | table | List of all pods with NAME, READY, STATUS, RESTARTS, and AGE columns |
| Port-forward tunnel | network tunnel | Local access to the Central Dashboard at http://localhost:8080 |
| Dashboard URL | URL | http://localhost:8080 after port-forwarding is active |
| Health status | boolean | Overall assessment: all pods Running/Completed = healthy, any failures = unhealthy |
Usage Examples
Basic Usage
# Step 1: Check all pods across all namespaces
echo "=== Checking all pods ==="
kubectl get pods -A
# Step 2: Check pods specifically in Kubeflow namespaces
echo "=== Kubeflow namespace ==="
kubectl get pods -n kubeflow
echo "=== Istio system ==="
kubectl get pods -n istio-system
echo "=== cert-manager ==="
kubectl get pods -n cert-manager
echo "=== Auth (Dex) ==="
kubectl get pods -n auth
echo "=== Knative Serving (if KServe is deployed) ==="
kubectl get pods -n knative-serving
# Step 3: Check for unhealthy pods
echo "=== Pods NOT in Running or Completed state ==="
kubectl get pods -A --field-selector=status.phase!=Running,status.phase!=Succeeded
# Step 4: Check CRDs are registered
echo "=== Kubeflow CRDs ==="
kubectl get crd | grep -E "kubeflow|kserve|tekton"
# Step 5: Check Profiles exist
echo "=== Kubeflow Profiles ==="
kubectl get profiles
# Step 6: Verify Istio ingress gateway has an external endpoint
echo "=== Istio Ingress Gateway ==="
kubectl get svc istio-ingressgateway -n istio-system
# Step 7: Port-forward to access Central Dashboard locally
echo "=== Starting port-forward (Ctrl+C to stop) ==="
echo "Access Central Dashboard at: http://localhost:8080"
kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
# Step 8 (in a separate terminal): Verify Dashboard is accessible
# curl -s -o /dev/null -w "%{http_code}" http://localhost:8080
# Expected: 200 or 302 (redirect to Dex login)
# Step 9: Check Dex OIDC discovery endpoint
# curl http://localhost:8080/dex/.well-known/openid-configuration
# Expected: JSON response with issuer, authorization_endpoint, token_endpoint