Flink-operator极大的方便了我们管理 Flink 集群及其作业,我们只需要自定义yaml文件就可以做到。Flink 官方还未给出 flink-operator 方案,不过 GoogleCloudPlatform 提供了一种基于 kubebuilder 构建的 flink-operator方案。接下来,将介绍 flink-operator 的安装方式。
flink-operator的介绍,请参考:www.cnblogs.com/tencent-clo…
代码下载
git clone https://github.com/GoogleCloudPlatform/flink-on-k8s-operator.git
复制代码
执行更新脚本
cd flink-on-k8s-operator
cd helm-chart/flink-operator
./update_template.sh
复制代码
chart里的crd修改
将config/crdchart中crd文件移除,因为有bug,无法自动安装crd,应该是版本问题,google官方给的文档是基于k8s-1.17的版本,如果你的K8S集群是1.18就会报错。
cd flink-on-k8s-operator
rm helm-chart/flink-operator/templates/flink-cluster-crd.yaml
cp config/crd/base/flinkoperator.k8s.io_flinkclusters.yaml helm-chart/flink-operator/templates
复制代码
crd 还是报错
make deploy failed: The CustomResourceDefinition "flinkclusters.flinkoperator.k8s.io" is invalid
复制代码
找到如下解决方案: github.com/GoogleCloud…
gcr.io镜像无法下载,三处镜像修改
网上找对应镜像,拉取,推送到私有镜像
下面是我找到的三个可用镜像:
docker pull mirrorgooglecontainers/flink-operator/deployer:webhook-cert
docker pull docker pull rancher/kube-rbac-proxy
docker pull metatronapp/flink-operator
复制代码
helm-chart/flink-operator/values 里的operatorImage - name 添加打了tag的私有镜像flink-operator
helm-chart/flink-operator/templates/flink-operator.yaml 的deployment里替换私有镜像 kube-rbac-proxy
helm-chart/flink-operator/templates/generate-cert.yaml 的Job里替换私有镜像 deployer:webhook-cert
尝试安装flink-operator-chart
我们可以通过helm命令进行按照,如下: helm install flink-operator . --set operatorImage.name=xxxxx:8000/spark-operator/flink-operator:latest,flinkOperatorNamespace.name=flink-operator-system,flinkOperatorNamespace.create=false
Argo CD支持多种 Kubernetes 清单中包括helm charts,可以直接用argocd进行管理安装。
到这里flink-operator就按照完毕了。后面我会带来 Flink 集群的管理示例,敬请期待。