Installing OLM and Strimzi Kafka operator

Installing Strimzi kafka operator
  1. Install OLM
$ kubectl apply -f https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.17.0/crds.yaml

customresourcedefinition.apiextensions.k8s.io/catalogsources.operators.coreos.com created
customresourcedefinition.apiextensions.k8s.io/clusterserviceversions.operators.coreos.com created
customresourcedefinition.apiextensions.k8s.io/installplans.operators.coreos.com created
customresourcedefinition.apiextensions.k8s.io/operatorgroups.operators.coreos.com created
customresourcedefinition.apiextensions.k8s.io/operators.operators.coreos.com created
customresourcedefinition.apiextensions.k8s.io/subscriptions.operators.coreos.com created
$ kubectl apply -f https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.17.0/olm.yaml
namespace/olm created
namespace/operators created
serviceaccount/olm-operator-serviceaccount created
clusterrole.rbac.authorization.k8s.io/system:controller:operator-lifecycle-manager created
clusterrolebinding.rbac.authorization.k8s.io/olm-operator-binding-olm created
deployment.apps/olm-operator created
deployment.apps/catalog-operator created
clusterrole.rbac.authorization.k8s.io/aggregate-olm-edit created
clusterrole.rbac.authorization.k8s.io/aggregate-olm-view created
operatorgroup.operators.coreos.com/global-operators created
operatorgroup.operators.coreos.com/olm-operators created
clusterserviceversion.operators.coreos.com/packageserver created
catalogsource.operators.coreos.com/operatorhubio-catalog created
  1. Installing strimzi operator
$ kubectl create -f https://operatorhub.io/install/strimzi-kafka-operator.yaml
subscription.operators.coreos.com/my-strimzi-kafka-operator created
$ kubectl get csv -n operators
NAME                               DISPLAY   VERSION   REPLACES                           PHASE
strimzi-cluster-operator.v0.20.1   Strimzi   0.20.1    strimzi-cluster-operator.v0.20.0   Pending
$ kubectl get all -n operators
NAME                                                   READY   STATUS              RESTARTS   AGE
pod/strimzi-cluster-operator-v0.20.1-5dc7cb547-d8nqr   0/1     ContainerCreating   0          61s

NAME                                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/strimzi-cluster-operator-v0.20.1   0/1     1            0           61s

NAME                                                         DESIRED   CURRENT   READY   AGE
replicaset.apps/strimzi-cluster-operator-v0.20.1-5dc7cb547   1         1         0       61s
$ kubectl get csv -n operators
NAME                               DISPLAY   VERSION   REPLACES                           PHASE
strimzi-cluster-operator.v0.20.1   Strimzi   0.20.1    strimzi-cluster-operator.v0.20.0   Succeeded
$ kubectl get ns
NAME                 STATUS   AGE
default              Active   8h
kube-node-lease      Active   8h
kube-public          Active   8h
kube-system          Active   8h
local-path-storage   Active   8h
olm                  Active   2m1s
operators            Active   2m1s
  1. Installing kafka - https://operatorhub.io/operator/strimzi-kafka-operator - Custom Resource Definitions
apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    version: 2.6.0
    replicas: 3
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
    config:
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 2
      log.message.format.version: '2.6'
      inter.broker.protocol.version: '2.6'
    storage:
      type: ephemeral
  zookeeper:
    replicas: 3
    storage:
      type: ephemeral
  entityOperator:
    topicOperator: {}
    userOperator: {}
$ kubectl create -f kafka.yaml 
kafka.kafka.strimzi.io/my-cluster created
$ kubectl get all
NAME                                              READY   STATUS    RESTARTS   AGE
pod/my-cluster-entity-operator-6b7f77b756-2m2wn   3/3     Running   0          71s
pod/my-cluster-kafka-0                            1/1     Running   0          100s
pod/my-cluster-kafka-1                            1/1     Running   0          100s
pod/my-cluster-kafka-2                            1/1     Running   0          100s
pod/my-cluster-zookeeper-0                        1/1     Running   2          4m7s
pod/my-cluster-zookeeper-1                        1/1     Running   3          4m7s
pod/my-cluster-zookeeper-2                        1/1     Running   0          4m7s

NAME                                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
service/kubernetes                    ClusterIP   10.96.0.1       <none>        443/TCP                      8h
service/my-cluster-kafka-bootstrap    ClusterIP   10.103.134.60   <none>        9091/TCP,9092/TCP,9093/TCP   101s
service/my-cluster-kafka-brokers      ClusterIP   None            <none>        9091/TCP,9092/TCP,9093/TCP   101s
service/my-cluster-zookeeper-client   ClusterIP   10.96.65.154    <none>        2181/TCP                     4m9s
service/my-cluster-zookeeper-nodes    ClusterIP   None            <none>        2181/TCP,2888/TCP,3888/TCP   4m8s

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/my-cluster-entity-operator   1/1     1            1           71s

NAME                                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/my-cluster-entity-operator-6b7f77b756   1         1         1       71s

NAME                                    READY   AGE
statefulset.apps/my-cluster-kafka       3/3     100s
statefulset.apps/my-cluster-zookeeper   3/3     4m8s