Step-by-Step Guide to Installing Istio on a Kubernetes Cluster
This article provides a step-by-step guide to installing Istio on a Kubernetes cluster, including verifying node status, creating the istio-system namespace, copying the istioctl binary, selecting a profile, generating manifests, and checking deployed pods and services.
First, verify that the Kubernetes cluster is running correctly by listing nodes:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 59d v1.20.0
node1 Ready <none> 59d v1.20.0
node2 Ready <none> 59d v1.20.0Next, create the istio-system namespace:
kubectl create namespace istio-system
namespace/istio-system createdCopy the istioctl binary to /usr/bin/ and run the installer:
cp -r istioctl /usr/bin/
istioctl install
This will install the Istio default profile with ["Istio core" "Istiod" "Ingress gateways"] components into the cluster. Proceed? (y/N)List available Istio configuration profiles and dump the default profile:
istioctl profile list
default
demo
empty
minimal
openshift
preview
remote
istioctl profile dump defaultCheck the pods in the istio-system namespace to confirm successful deployment:
kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-ingressgateway-866c58dfd7-pk9rg 1/1 Running 0 152m
istiod-68fb7dff99-8nfbv 1/1 Running 0 153mGenerate the full Istio manifest, which includes the Service definition for istiod and its ports:
istioctl manifest generate
---
apiVersion: v1
kind: Service
metadata:
name: istiod
namespace: istio-system
labels:
istio.io/rev: default
install.operator.istio.io/owning-resource: unknown
operator.istio.io/component: "Pilot"
app: istiod
istio: pilot
release: istio
spec:
ports:
- port: 15010
name: grpc-xds # plaintext
protocol: TCP
- port: 15012
name: https-dns # mTLS with k8s-signed cert
protocol: TCP
- port: 443
name: https-webhook # validation and injection
targetPort: 15017
protocol: TCP
- port: 15014
name: http-monitoring # prometheus stats
protocol: TCP
selector:
app: istiod
istio: pilot
---Images in the original article illustrate the command outputs and the generated manifest.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Practical DevOps Architecture
Hands‑on DevOps operations using Docker, K8s, Jenkins, and Ansible—empowering ops professionals to grow together through sharing, discussion, knowledge consolidation, and continuous improvement.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
