Building Calico with Kubernetes - linux-on-ibm-z/docs GitHub Wiki

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.6, 9.7, 9.8, 10.0, 10.1, 10.2)
  • SLES 15 SP7
  • 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.35

1. Build Calico basic components

Instructions for building the basic Calico components, which includes calico/node 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
  • Import the locally built calico/node image into the containerd k8s.io namespace: docker save calico/node:latest-s390x | ctr -n k8s.io images import -
  • 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.32.1/manifests/tigera-operator.yaml
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.32.1/manifests/custom-resources.yaml
  • Following pods are expected following a successful deployment:
NAMESPACE         NAME                                            READY   STATUS         RESTARTS   AGE
calico-system     calico-apiserver-c559b9cd8-j4xbr                1/1     Running        0          2m8s
calico-system     calico-apiserver-c559b9cd8-xrpkh                1/1     Running        0          2m8s
calico-system     calico-kube-controllers-6b7c66849b-25fp9        1/1     Running        0          2m8s
calico-system     calico-node-vwpx4                               1/1     Running        0          2m8s
calico-system     calico-typha-7d45cff587-xzj8t                   1/1     Running        0          2m8s
calico-system     csi-node-driver-jk6f9                           2/2     Running        0          2m8s
calico-system     goldmane-646fd87bdd-9vw7t                       1/1     Running        0          2m8s
calico-system     whisker-cfc8868b8-l7qmq                         1/2     ErrImagePull   0          112s
kube-system       coredns-7d764666f9-bdzl8                        1/1     Running        0          3m4s
kube-system       coredns-7d764666f9-mqv89                        1/1     Running        0          3m4s
kube-system       etcd-c95592v1.fyre.ibm.com                      1/1     Running        0          3m11s
kube-system       kube-apiserver-c95592v1.fyre.ibm.com            1/1     Running        0          3m11s
kube-system       kube-controller-manager-c95592v1.fyre.ibm.com   1/1     Running        0          3m11s
kube-system       kube-proxy-6rp59                                1/1     Running        0          3m5s
kube-system       kube-scheduler-c95592v1.fyre.ibm.com            1/1     Running        0          3m11s
tigera-operator   tigera-operator-7fc95779c7-8wb46                1/1     Running        0          2m21s

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.32.1/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-687fc57cb8-v8h4n        1/1     Running   0          92s
kube-system   canal-qlff9                                     2/2     Running   0          92s
kube-system   coredns-7d764666f9-dsw66                        1/1     Running   0          118s
kube-system   coredns-7d764666f9-fqqrj                        1/1     Running   0          118s
kube-system   etcd-c95592v1.fyre.ibm.com                      1/1     Running   1          2m5s
kube-system   kube-apiserver-c95592v1.fyre.ibm.com            1/1     Running   1          2m5s
kube-system   kube-controller-manager-c95592v1.fyre.ibm.com   1/1     Running   0          2m5s
kube-system   kube-proxy-zmf7c                                1/1     Running   0          118s
kube-system   kube-scheduler-c95592v1.fyre.ibm.com            1/1     Running   1          2m5s

References: