Skip to content

Building Calico with Kubernetes

linuxonz edited this page Nov 20, 2025 · 50 revisions

Integrating Calico with Kubernetes

Calico enables networking and network policy in Kubernetes clusters across the cloud. The instructions provided you the steps to integrate Calico with Kubernetes on Linux on IBM Z for following distribution:

  • RHEL (8.10, 9.4. 9.6)
  • SLES (15 SP6)
  • Ubuntu (22.04, 24.04)

General Notes:

  • When following the steps below please use a standard permission user unless otherwise specified.

  • A directory /<source_root>/ will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it.

  • Following build instructions were tested using Kubernetes version 1.31

1. Build Calico basic components

Instructions for building the basic Calico components, which includes calico/ctl , calico/node and calico/kube-controllers can be found here.

2. Install Calico in Kubernetes environment

Once you have all necessary components built on Z systems, you can

  • Configure and run your Kubernetes following here

  • Install Calico as per instructions; ensure tigera-operator.yaml and custom-resources.yaml have correct values reflecting the operational cluster:

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/tigera-operator.yaml
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/custom-resources.yaml
  • Following pods are expected following a successful deployment:
NAMESPACE         NAME                                                        READY   STATUS             RESTARTS   AGE
calico-system     calico-apiserver-67ff69f567-dxz94                           1/1     Running            0          2m2s
calico-system     calico-apiserver-67ff69f567-khq4v                           1/1     Running            0          2m2s
calico-system     calico-kube-controllers-6647c7f76f-nkgqg                    1/1     Running            0          117s
calico-system     calico-node-4ncqs                                           1/1     Running            0          117s
calico-system     calico-typha-6c4dbf9858-54c6s                               1/1     Running            0          118s
calico-system     csi-node-driver-rcrnc                                       2/2     Running            0          117s
calico-system     goldmane-5cfbfbffd6-5b8zq                                   1/1     Running            0          2m3s
calico-system     whisker-9c87768db-8tb4n                                     1/2     ImagePullBackOff   0          105s
kube-system       coredns-674b8bbfcf-69rwv                                    1/1     Running            0          5m10s
kube-system       coredns-674b8bbfcf-vplfk                                    1/1     Running            0          5m10s
kube-system       etcd-calico-k8s-rhel94-z1.fyre.ibm.com                      1/1     Running            0          5m17s
kube-system       kube-apiserver-calico-k8s-rhel94-z1.fyre.ibm.com            1/1     Running            0          5m13s
kube-system       kube-controller-manager-calico-k8s-rhel94-z1.fyre.ibm.com   1/1     Running            0          5m13s
kube-system       kube-proxy-9hmkh                                            1/1     Running            0          5m10s
kube-system       kube-scheduler-calico-k8s-rhel94-z1.fyre.ibm.com            1/1     Running            0          5m13s
tigera-operator   tigera-operator-75f6548d76-9kz4t                            1/1     Running            0          2m32s

Note: Calico Whisker is in tech preview and s390x is not currently supported.

3. (Optional) Install Calico for policy and flannel (aka Canal) for networking

  • Ensure you have a Calico compatible Kubernetes cluster

  • Download and install flannel networking manifest for the Kubernetes API datastore

curl https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/canal.yaml -O
kubectl apply -f canal.yaml
  • Following pods are expected upon successful deployment:
NAMESPACE     NAME                                                      READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-cc5755cd7-jz4pw                   1/1     Running   0          19s
kube-system   canal-dt75q                                               2/2     Running   0          19s
kube-system   coredns-7c65d6cfc9-9gwb5                                  1/1     Running   0          26s
kube-system   coredns-7c65d6cfc9-m762v                                  1/1     Running   0          26s
kube-system   etcd-calico-k8s-rh95-z1.fyre.ibm.com                      1/1     Running   0          30s
kube-system   kube-apiserver-calico-k8s-rh95-z1.fyre.ibm.com            1/1     Running   0          30s
kube-system   kube-controller-manager-calico-k8s-rh95-z1.fyre.ibm.com   1/1     Running   0          30s
kube-system   kube-proxy-pqgfg                                          1/1     Running   0          26s
kube-system   kube-scheduler-calico-k8s-rh95-z1.fyre.ibm.com            1/1     Running   0          32s

References:

Clone this wiki locally