国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【梳理】k8s使用Operator搭建Flink集群(高可用可選)

這篇具有很好參考價值的文章主要介紹了【梳理】k8s使用Operator搭建Flink集群(高可用可選)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 架構(gòu)圖

【梳理】k8s使用Operator搭建Flink集群(高可用可選),云原生,kubernetes,flink,容器

參考:部署驗證demo

2. helm 安裝operator

安裝cert-manager依賴
Jetstack/cert-manager 是 Kubernetes 生態(tài)系統(tǒng)中的一款開源項目,它提供了一種自動化的方式來管理 TLS 證書的生命周期

kubectl create -f https://github.com/jetstack/cert-manager/releases/download/v1.8.2/cert-manager.yaml
# helm 安裝 , 包含 deploy*1 、cm*1、crd*2 以及 rbac sa webhook
kubectl create -f https://github.com/jetstack/cert-manager/releases/download/v1.8.2/cert-manager.yaml
helm repo add flink-operator-repo https://downloads.apache.org/flink/flink-kubernetes-operator-1.7.0/
helm install flink-kubernetes-operator flink-operator-repo/flink-kubernetes-operator

3. 集群知識

k8s上的兩種模式:Native和Standalone

Flink Kubernetes Operator 支持:原生部署native(默認)和獨立部署standalone

可以使用部署規(guī)范中的 mode 字段設置部署模式。

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
...
spec:
  ...
  mode: standalone

兩種CR

FlinkDeployment CR 定義了 Flink 應用程序和會話集群部署。

FlinkSessionJob CR 定義了 Session 集群上的會話任務(Job)

Flink Kubernetes Operator 支持兩種主要類型的部署:Application集群 和 Session集群 ,k8s上不支持Job集群。

4. 運行集群實例

Demo1:Application 集群

一次性任務,只有一個Job,執(zhí)行器和邏輯代碼打包成一個jar,直接運行,運行即結(jié)束。

# 此crd創(chuàng)建后,operator會創(chuàng)建:
# 1個deploy(即jobmanager,鏡像為flink:1.17)
# 1個pod(即taskManager,鏡像也是flink:1.17,任務jar包在鏡像中)
apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  name: basic-example
spec:
  image: flink:1.17
  flinkVersion: v1_17
  flinkConfiguration:
    taskmanager.numberOfTaskSlots: "2"
  serviceAccount: flink
  jobManager:
    resource:
      memory: "2048m"
      cpu: 1
  taskManager:
    resource:
      memory: "2048m"
      cpu: 1
  job:
    jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar
    parallelism: 2
    upgradeMode: stateless

注:k8s不支持Job集群,可以看做是 Flink Application 集群”客戶端運行“的替代方案。集群管理器為每個提交的作業(yè)啟動一個集群。

Demo2:Session集群

多租戶,多個job,每個sessionjob代表一個job,有提交jar包的功能。
Session使用與Application 集群類似的規(guī)范,唯一的區(qū)別是 job 未定義。

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  name: basic-session-deployment-example
spec:
  image: flink:1.17
  flinkVersion: v1_17
  jobManager:
    resource:
      memory: "2048m"
      cpu: 1
  taskManager:
    resource:
      memory: "2048m"
      cpu: 1
  serviceAccount: flink
---
apiVersion: flink.apache.org/v1beta1
kind: FlinkSessionJob
metadata:
  name: basic-session-job-example
spec:
  deploymentName: basic-session-deployment-example
  job:
    jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.16.1/flink-examples-streaming_2.12-1.16.1-TopSpeedWindowing.jar
    parallelism: 4
    upgradeMode: stateless

---
apiVersion: flink.apache.org/v1beta1
kind: FlinkSessionJob
metadata:
  name: basic-session-job-example2
spec:
  deploymentName: basic-session-deployment-example
  job:
    jarURI: https://repo1.maven.org/maven2/org/apache/flink/flink-examples-streaming_2.12/1.16.1/flink-examples-streaming_2.12-1.16.1.jar
    parallelism: 2
    upgradeMode: stateless
    entryClass: org.apache.flink.streaming.examples.statemachine.StateMachineExample

注:為了方便訪問,可以再創(chuàng)建ingress。svc端口默認為8081,指向svc-rest即可。

優(yōu)劣

  • Session集群,是常規(guī)的共享方式。
  • Application集群,提供了更好的隔離,生命周期與程序邏輯有關(guān)。
  • Job集群,適合長期運行、要求高穩(wěn)定性的大型作業(yè)。(啟動慢)

5. 高可用部署

Flink 提供了兩種高可用服務實現(xiàn):

  • ZooKeeper:每個 Flink 集群部署都可以使用 ZooKeeper HA 服務。它們需要一個運行的 ZooKeeper 復制組(quorum)。
  • Kubernetes:Kubernetes HA 服務只能運行在 Kubernetes 上。
    注:Flink 持久化元數(shù)據(jù)和 job 組件,直到作業(yè)執(zhí)行成功、被取消或最終失敗,再刪除。

我在實踐時,遇到兩個問題:

問題1:High availability should be enabled when starting standby JobManagers

直接增加jobManager的副本數(shù)提示上述錯誤,要先做選舉配置,我選擇的是k8s實現(xiàn),下面僅列出修改部分,注意flinkConfigurationpodTemplate兩部分:

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
spec:
  flinkConfiguration:
    high-availability: org.apache.flink.kubernetes.highavailability.KubernetesHaServicesFactory
    high-availability.storageDir: file:///flink-data/ha
    web.upload.dir: /flink-data  #會自動創(chuàng)建flink-web-upload目錄保存上傳的jar包
  jobManager:
    replicas: 2
  taskManager:
    replicas: 2
  podTemplate:
    spec:
      containers:
        - name: flink-main-container
          volumeMounts:
            - mountPath: /flink-data
              name: flink-volume
      volumes:
        - name: flink-volume
          persistentVolumeClaim:
            claimName: flink-ha

問題2:The base directory of the JobResultStore isn’t accessible

如果沒有正確掛載存儲卷提示上述錯誤。
官方demo配置的卷是宿主機的路徑,如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-850873.html

      volumes:
        - name: flink-volume
          hostPath:
            path: /tmp/flink  # 如果宿主機上沒有這個路徑會報錯
            type: Director

6. 補充

  1. 拉取國外鏡像比較困難,可以使用https://dockerproxy.com/
  2. 搭建多租戶PaaS平臺,可以使用Session方式,新任務可以通過CR進行管理,也可以由頁面添加jar包。
  3. 本文內(nèi)容來源于Flink官網(wǎng),進行翻譯、簡化、整理,供大家參考~

到了這里,關(guān)于【梳理】k8s使用Operator搭建Flink集群(高可用可選)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 高可用containerd搭建K8s集群【v1.25】

    [toc] 在開始之前,部署Kubernetes集群機器需要滿足以下幾個條件: 一臺或多臺機器,操作系統(tǒng) CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2個CPU或更多CPU,硬盤30GB或更多 集群中所有機器之間網(wǎng)絡互通 可以訪問外網(wǎng),需要拉取鏡像 禁止swap分區(qū) 角色 IP k8s-master1 192.168.4.114 k8s-master2

    2024年02月09日
    瀏覽(24)
  • 【kubernetes】k8s高可用集群搭建(三主三從)

    【kubernetes】k8s高可用集群搭建(三主三從)

    目錄 【kubernetes】k8s高可用集群搭建(三主三從) 一、服務器設置 二、環(huán)境配置 1、關(guān)閉防火墻 2、關(guān)閉selinux 3、關(guān)閉swap 4、修改主機名(根據(jù)主機角色不同,做相應修改) 5、主機名映射 6、將橋接的IPv4流量傳遞到iptables的鏈 7、時間同步 8、master之間進行免密登錄設置 三、

    2024年02月09日
    瀏覽(23)
  • 基于Docker搭建多主多從K8s高可用集群

    基于Docker搭建多主多從K8s高可用集群

    主機規(guī)劃 master - 最低兩核心,否則集群初始化失敗 主機名 IP地址 角色 操作系統(tǒng) 硬件配置 ansible 10.62.158.200 同步工具節(jié)點 CentOS 7 2 Core/4G Memory master01 10.62.158.201 管理節(jié)點01 CentOS 7 2 Core/4G Memory master02 10.62.158.202 管理節(jié)點02 CentOS 7 2 Core/4G Memory master03 10.62.158.203 管理節(jié)點03 CentOS

    2024年04月22日
    瀏覽(26)
  • Kubeadm方式搭建K8s高可用集群【1.23.0版本】

    Kubeadm方式搭建K8s高可用集群【1.23.0版本】

    官方文檔: 二進制下載地址 環(huán)境規(guī)劃: pod網(wǎng)段:10.244.0.0/16 service網(wǎng)段:10.10.0.0/16 注意: pod和service網(wǎng)段不可沖突,如果沖突會導致K8S集群安裝失敗。 主機名 IP地址 操作系統(tǒng) 備注 master-1 16.32.15.200 CentOS7.8 安裝keepalived、nginx實現(xiàn)高可用 master-2 16.32.15.201 CentOS7.8 安裝keepalived、

    2023年04月22日
    瀏覽(27)
  • 【云原生】搭建k8s高可用集群—更新于2023.04

    【云原生】搭建k8s高可用集群—更新于2023.04

    假設現(xiàn)在有3個node節(jié)點和3個master節(jié)點,node1到底是連到master1還是連到master2還是master3,需要有人來分配,這個中間人就是load balancer,load balancer起到兩個作用,一是負載。二是檢查master狀態(tài),如果master1異常,就會使node連到master2上,如果master1正常,則正常提供服務。由于節(jié)點

    2023年04月16日
    瀏覽(30)
  • 搭建單機版K8S運行Flink集群

    環(huán)境要求 操作系統(tǒng): CentOS 7.x 64位 Kubernetes版本:v1.16.2 Docker版本:19.03.13-ce Flink版本:1.14.3 使用中國YUM及鏡像源? 1.安裝Kubernetes: 1.1 創(chuàng)建文件:/etc/yum.repos.d/kubernetes.repo,內(nèi)容如下: 1.2??執(zhí)行安裝命令: ?1.3?啟動kubelet服務并設置開機自啟: 2.安裝Docker: 2.1 創(chuàng)建文件:

    2023年04月26日
    瀏覽(21)
  • k8s 搭建基于session模式的flink集群

    k8s 搭建基于session模式的flink集群

    不廢話直接上代碼,都是基于官網(wǎng)的,在此記錄一下?Kubernetes | Apache Flink flink-configuration-configmap.yaml jobmanager-service.yaml ?Optional service, which is only necessary for non-HA mode. Session cluster resource definitions?# jobmanager-session-deployment-non-ha.yaml taskmanager-session-deployment.yaml ?kubectl apply -f xxx.ya

    2024年02月10日
    瀏覽(23)
  • Flink K8S Operator 離線安裝

    2.1 添加helm倉庫 2.2 安裝 chart 如果報如下錯誤: 則需要添加 --set webhook.create=false 參數(shù)

    2024年03月16日
    瀏覽(21)
  • 使用kubeadm搭建高可用的K8s集群

    kubeadm是官方社區(qū)推出的一個用于快速部署kubernetes集群的工具。 這個工具能通過兩條指令完成一個kubernetes集群的部署: 在開始之前,部署Kubernetes集群機器需要滿足以下幾個條件: 一臺或多臺機器,操作系統(tǒng) CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2個CPU或更多CPU,硬盤30GB或更

    2024年02月08日
    瀏覽(21)
  • 使用rancher rke2配置高可用k8s集群

    使用rancher rke2配置高可用k8s集群

    RKE2 結(jié)合了 RKE1.x 版本(以下簡稱 RKE1)和 K3s 的優(yōu)點和特性。 從 K3s 中,它繼承了可用性、易操作性和部署模式。 從 RKE1 來看,它繼承了與上游 Kubernetes 的緊密一致性。在一些地方,K3s 與上游的 Kubernetes 有分歧,以便為邊緣部署進行優(yōu)化,但 RKE1 和 RKE2 可以與上游保持密切一

    2023年04月26日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包