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

Flink on K8S生產(chǎn)集群使用StreamPark管理

這篇具有很好參考價值的文章主要介紹了Flink on K8S生產(chǎn)集群使用StreamPark管理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

(一)直接部署(手動測試用,不推薦)

Flink on Native Kubernetes 目前支持 Application 模式和 Session 模式,兩者對比 Application 模式部署規(guī)避了 Session 模式的資源隔離問題、以及客戶端資源消耗問題,因此生產(chǎn)環(huán)境更推薦采用 Application Mode 部署 Flink 任務(wù)。下面我們分別看看使用原始腳本的方式和使用 StreamPark 開發(fā)部署一個 Flink on Native Kubernetes 作業(yè)的流程。
使用腳本方式部署Kubernetes

  1. 在 Flink 客戶端節(jié)點準(zhǔn)備 kubectl 和 Docker 命令運行環(huán)境,創(chuàng)建部署 Flink 作業(yè)使用的 Kubernetes Namespace 和 Service Account 以及進(jìn)行 RBAC
  2. 編寫 Dockerfile 文件,將 Flink 基礎(chǔ)鏡像和用戶的作業(yè) Jar 打包到一起
Explain
FROM flink:1.13.6-scala_2.11
RUN mkdir -p $FLINK_HOME/usrlib
COPY my-flink-job.jar $FLINK_HOME/usrlib/my-flink-job.jar
  1. 使用 Flink 客戶端腳本啟動 Flink 任務(wù)
./bin/flink run-application \
    --target kubernetes-application \
    -Dkubernetes.namespace=flink-cluster \
    -Dkubernetes.jobmanager.service-account=default \
    -Dkubernetes.cluster-id=my-first-application-cluster \
    -Dkubernetes.container.image=relx_docker_url/streamx/relx_flink_1.13.6-scala_2.11:latest \
    -Dkubernetes.rest-service.exposed.type=NodePort \
    local:///opt/flink/usrlib/my-flink-job.jar
  1. 使用 Kubectl 命令獲取到 Flink 作業(yè)的 WebUI 訪問地址和 JobId
kubectl -n flink-cluster get svc
  1. 使用Flink命令停止作業(yè)
./bin/flink cancel
    --target kubernetes-application
    -Dkubernetes.cluster-id=my-first-application-cluster
    -Dkubernetes.namespace=flink-cluster <jobId

以上就是使用 Flink 提供的最原始的腳本方式把一個 Flink 任務(wù)部署到 Kubernetes 上的過程,只做到了最基本的任務(wù)提交,如果要達(dá)到生產(chǎn)使用級別,還有一系列的問題需要解決,如:方式過于原始無法適配大批量任務(wù)、無法記錄任務(wù)checkpoint 和實時狀態(tài)跟蹤、任務(wù)運維和監(jiān)控困難、無告警機(jī)制、 無法集中化管理等等。

(二)使StreamPark平臺(推薦)

官網(wǎng):https://streampark.apache.org/docs/intro/

一、登陸

#地址
http://xxxx:10000/

二、 平臺初始化配置

2.1 配置Docker Register

Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s

2.2 配置Flink Home

注:按需配置,需要下載好flink的安裝包,建議放到nfs共享文件夾中,即使streampark宕機(jī)恢復(fù)也不影響

Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s

2.3 告警配置

Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s

2.4 團(tuán)隊管理

為了方便管理公司內(nèi)不同部門的作業(yè),StreamPark 支持了團(tuán)隊管理。系統(tǒng)管理員可以在 StreamPark 上為不同部門創(chuàng)建不同的團(tuán)隊。
團(tuán)隊類似于工作空間的概念,當(dāng)選擇團(tuán)隊后平臺只會展示當(dāng)前團(tuán)隊的作業(yè)和項目。如果用戶在多個團(tuán)隊有權(quán)限,切換到其他團(tuán)隊即可查看或操作相應(yīng)團(tuán)隊的作業(yè)。
Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s
2.5 權(quán)限配置

注:
ADMIN 創(chuàng)建或修改用戶時可以指定用戶類型,用戶類型有 ADMIN 和 USER 兩種。

  • ADMIN 表示系統(tǒng)管理員,即:StreamPark 的超級管理員,有 StreamPark 管理頁面以及各個團(tuán)隊的所有權(quán)限。
  • USER 表示平臺的普通用戶。創(chuàng)建 USER 只是創(chuàng)建賬號的過程,默認(rèn)普通用戶在平臺沒有任何權(quán)限。創(chuàng)建 USER 后且系統(tǒng)管理員給 USER 在一些團(tuán)隊綁定角色后,USER 才會在相應(yīng)團(tuán)隊有權(quán)限。
    Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s

三、k8s集群初始化配置

基礎(chǔ)環(huán)境配置包括 Kubernetes 和 Docker 倉庫信息以及 Flink 客戶端的信息配置。對于 Kubernetes 基礎(chǔ)環(huán)境最為簡單的方式是直接拷貝 Kubernetes 節(jié)點的 .kube/config 到 StreamPark 節(jié)點用戶目錄,之后使用 kubectl 命令創(chuàng)建 Flink 專用的 Kubernetes Namespace 以及進(jìn)行 RBAC 配置。

# 創(chuàng)建Flink作業(yè)使用的k8s namespace
kubectl create namespace flink
kubectl create serviceaccount flink
# 對flink用戶進(jìn)行RBAC資源綁定
kubectl create clusterrolebinding flink-role-bind --clusterrole=edit --serviceaccount=flink:flink

四、任務(wù)發(fā)布

StreamPark 做好基礎(chǔ)環(huán)境配置之后只需要三步即可開發(fā)部署一個 Flink 作業(yè):
Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s
StreamPark 既支持 Upload Jar 也支持直接編寫 Flink SQL 作業(yè), Flink SQL 作業(yè)只需要輸入SQL 和 依賴項即可, 該方式大大提升了開發(fā)體驗, 并且規(guī)避了依賴沖突等問題,對此部分本文不重點介紹。
這里需要選擇部署模式為 kubernetes application, 并且需要在作業(yè)開發(fā)頁面進(jìn)行以下參數(shù)的配置:紅框中參數(shù)為 Flink on Kubernetes 基礎(chǔ)參數(shù)。

配置說明:
Kubernetes Namespace:flink任務(wù)建議統(tǒng)一放入flink命名空間內(nèi)
Kubernetes ClusterId:任務(wù)名自定義即可
Flink Base Docker Image :storage/bigdata/flink:1.13.0-scala_2.12-java8s、torage/bigdata/flink:1.14.4-scala_2.12-java8、storage/bigdata/flink:1.16.2-scala_2.12-java8(如需新的版本可自行添加)
Rest-Service Exposed Type:如需進(jìn)入flink的網(wǎng)頁端頁面選用NodePort,不需要進(jìn)入則選用ClusterIp,不要用loadbalancer,會進(jìn)入公網(wǎng)ip

Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s

下面參數(shù)為 Flink 作業(yè)和資源相關(guān)的參數(shù),Resolve Order 的選擇與代碼加載模式有關(guān),對于 DataStream API 開發(fā)的 Upload Jar上傳的作業(yè)選擇使用 Child-first,F(xiàn)link SQL 作業(yè)選擇使用 Parent-first 加載。
Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s
最后就是下面這兩個重量級參數(shù)了,對于 Native Kubernetes 而言,k8s-pod-template 一般只需要進(jìn)行 pod-template 配置即可,Dynamic Option 是 pod-template 參數(shù)的補(bǔ)充,對于一些個性化配置可以在 Dynamic Option 中配置。更多 Dynamic Option 直接參考 Flink 官網(wǎng)即可。

測試用:

Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s
生產(chǎn)用
Pod Template配置

apiVersion: v1
kind: Pod
metadata:
  #pod配置名稱,不需要修改
  name: pod-template
spec:
  #選擇k8s的namespace,與界面配置要一致
  serviceAccount: flink
  containers:
  #flink啟動的默認(rèn)名稱,不可更改
  - name: flink-main-container
    env:
    #時區(qū)配置,默認(rèn)時區(qū)與中國地區(qū)時區(qū)不一致
      - name: TZ
        value: Asia/Shanghai
    image:
    #持久化保存,容器內(nèi)地址與nfs地址的映射
    volumeMounts:
      - name: data-flink
      #容器內(nèi)的地址
        mountPath: /opt/flink/job  
      - name: data-streampark
        mountPath: /log/streampark       
  imagePullSecrets:
  - name: regsecret
  #配置容器內(nèi)的host,可自己調(diào)整,格式不要改
  hostAliases:
    - ip: "xxx"
      hostnames:
      - "xxx"
    - ip: "xxx"
      hostnames:
      - "xxx"
    - ip: "xxx"
      hostnames:
      - "xxx"
  #與上述volumeMounts對應(yīng),配置實際的分布式或者本地地址
  volumes:
    - name: data-flink
    #公司nfs地址配置,配置前需要檢查nfs中是否有該文件夾
      nfs:
        path: /data_flink
        server: xxx
    - name: data-streampark
      nfs:
        path: /data_streampark
        server: xxx

Dynamic Properties

#K8s的service賬戶,flink命令空間使用flink即可
-Dkubernetes.service-account=flink
#容器鏡像拉取策略,建議是always(否則更新配置會不生效)。(Always 總是拉取鏡像;IfNotPresent 本地有則使用本地鏡像,不拉取;Never 只使用本地鏡像,從不拉取,即使本地沒有)
-Dkubernetes.container.image.pull-policy=Always
#checkpoint及savepoints持久化時配置
-Dstate.checkpoint-storage=filesystem
-Dstate.checkpoints.dir=file:///opt/flink/job/checkpoints/test
-Dstate.savepoints.dir=file:///opt/flink/job/savepoints/test
#log日志持久化時配置
-Dkubernetes.flink.log.dir=/opt/flink/job/logs/test
#與界面配置保持一致
-Dkubernetes.cluster-id=test
#flink任務(wù)高可用配置
-Dhigh-availability.type=kubernetes
-Dhigh-availability=org.apache.flink.kubernetes.highavailability.KubernetesHaServicesFactory
-Dhigh-availability.storageDir=file:///opt/flink/job/recovery/test
-Drestart-strategy=fixed-delay
-Drestart-strategy.fixed-delay.attempts=3

五、作業(yè)上線

作業(yè)開發(fā)完成之后是作業(yè)上線環(huán)節(jié),在這一環(huán)節(jié)中 StreamPark 做了大量的工作,具體如下:

  • 準(zhǔn)備環(huán)境
  • 作業(yè)中的依賴下載
  • 構(gòu)建作業(yè)(打JAR包)
  • 構(gòu)建鏡像
  • 推送鏡像到遠(yuǎn)程倉庫
    對于用戶來說: 只需要點擊任務(wù)列表中的云狀的上線按鈕即可。
    Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s
    在鏡像構(gòu)建和推送的時候我們可以看到 StreamPark 做的一系列工作: 讀取配置、構(gòu)建鏡像、推送鏡像到遠(yuǎn)程倉庫…
    Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s

六、作業(yè)提交

最后只需要點擊 Operation 里 start Application 按鈕便可啟動一個 Flink on Kubernetes 作業(yè),作業(yè)啟動成功之后點擊作業(yè)名便可跳轉(zhuǎn)到 Jobmanager WebUI 頁面、整個過程非常簡單絲滑。
Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s
整個過程僅需上述三步,即可完成在 StreamPark 上開發(fā)和部署一個Flink on Kubernetes 作業(yè)。而 StreamPark 對于 Flink on Kubernetes 的支持遠(yuǎn)遠(yuǎn)不止提交個任務(wù)這么簡單。

七、作業(yè)管理

任務(wù)恢復(fù):
savepoint選擇Dynamic Properties配置的地址+啟動時創(chuàng)建的文件夾名(文件夾名需要去掛載的nfs上查看,且需要具體的chk名),
如配置為:-Dstate.checkpoints.dir=file:///opt/flink/job/checkpoints/test
此處應(yīng)填寫:/opt/flink/job/checkpoints/test/6b73526ea07b1c6b84b9aae159b05aaa/chk-32
Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s
Flink on K8S生產(chǎn)集群使用StreamPark管理,Flink,flink,kubernetes,大數(shù)據(jù),streampark,k8s文章來源地址http://www.zghlxwxcb.cn/news/detail-775393.html

八、StreamPark不足

  • StreamPark不支持 Flink 作業(yè) Metric 監(jiān)控
  • 每次增加作業(yè)都會形成一個新的鏡像,鏡像過大
  • streampark:2.1.2版本騰訊k8s(TKE)安裝存在bug,運行狀態(tài)一直顯示starting

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

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 如何使用裝rancher安裝k8s集群(k8s集群圖形化管理工具)

    如何使用裝rancher安裝k8s集群(k8s集群圖形化管理工具)

    kubernetes集群的圖形化管理工具主要有以下幾種: 1、 Kubernetes Dashborad: Kubernetes 官方提供的圖形化工具 2、 Rancher: 目前比較主流的企業(yè)級kubernetes可視化管理工具 3、各個云廠商Kubernetes集成的管理器 4、 Kuboard: 國產(chǎn)開源Kubernetes可視化管理工具 本篇我們來學(xué)習(xí) 主流的企業(yè)級kube

    2024年02月11日
    瀏覽(29)
  • flink on k8s幾種創(chuàng)建方式

    在此之前需要部署一下私人docker倉庫,教程搭建 Docker 鏡像倉庫 注意:每臺節(jié)點的daemon.json都需要配置 \\\"insecure-registries\\\": [\\\"http://主機(jī)IP:8080\\\"] 并重啟 Session 模式是指在 Kubernetes 上啟動一個共享的 Flink 集群(由 JobManager 和多個 TaskManagers 組成),然后多個 Flink 作業(yè)可以提交到這個

    2024年02月03日
    瀏覽(18)
  • 【K8s】3# 使用kuboard管理K8s集群(NFS存儲安裝)

    【K8s】3# 使用kuboard管理K8s集群(NFS存儲安裝)

    最完整的學(xué)習(xí)文檔莫過于官網(wǎng):直達(dá)地址:Kuboard for K8S Kubernetes 對 Pod 進(jìn)行調(diào)度時,以當(dāng)時集群中各節(jié)點的可用資源作為主要依據(jù),自動選擇某一個可用的節(jié)點,并將 Pod 分配到該節(jié)點上。在這種情況下,Pod 中容器數(shù)據(jù)的持久化如果存儲在所在節(jié)點的磁盤上,就會產(chǎn)生不可預(yù)

    2024年01月20日
    瀏覽(28)
  • k8s集群生產(chǎn)環(huán)境的問題處理

    k8s集群生產(chǎn)環(huán)境的問題處理

    2 k8s上的服務(wù)均無法訪問 執(zhí)行命令 kubectl get pods -ALL ,k8s集群中的服務(wù)均是running狀態(tài) 1 kuboard 網(wǎng)頁無法訪問 kuboard無法通過瀏覽器訪問,但是查看端口是被占用的

    2024年02月12日
    瀏覽(24)
  • Flink 內(nèi)容分享(十九):理想汽車基于Flink on K8s的數(shù)據(jù)集成實踐

    Flink 內(nèi)容分享(十九):理想汽車基于Flink on K8s的數(shù)據(jù)集成實踐

    目錄 數(shù)據(jù)集成的發(fā)展與現(xiàn)狀 數(shù)據(jù)集成的落地實踐 1. 數(shù)據(jù)集成平臺架構(gòu) 2. 設(shè)計模型 3. 典型場景 4. 異構(gòu)數(shù)據(jù)源 5. SQL 形式的過濾條件 數(shù)據(jù)集成云原生的落地實踐 1. 方案選型 2. 狀態(tài)判斷及日志采集 3. 監(jiān)控告警 4. 共享存儲 未來規(guī)劃 理想汽車數(shù)據(jù)集成的發(fā)展經(jīng)歷了四個階段:

    2024年02月01日
    瀏覽(24)
  • flink集群與資源@k8s源碼分析-集群

    flink集群與資源@k8s源碼分析-集群

    本文是flink集群與資源@k8s源碼分析系列的第二篇-集群 下面詳細(xì)分析各用例 k8s集群支持session和application模式,job模式將會被廢棄,本文分析session模式集群 Configuration作為配置容器,幾乎所有的構(gòu)建需要從配置類獲取配置項,這里不顯示關(guān)聯(lián)關(guān)系 1. 用戶命令行執(zhí)行kubernates-ses

    2024年02月07日
    瀏覽(24)
  • 云原生之深入解析Flink on k8s的運行模式與實戰(zhàn)操作

    Flink 核心是一個流式的數(shù)據(jù)流執(zhí)行引擎,并且能夠基于同一個 Flink 運行時,提供支持流處理和批處理兩種類型應(yīng)用。其針對數(shù)據(jù)流的分布式計算提供了數(shù)據(jù)分布,數(shù)據(jù)通信及容錯機(jī)制等功能。 Flink 官網(wǎng) 不同版本的文檔 flink on k8s 官方文檔 GitHub 地址 官方文檔 Flink on yarn 有三

    2024年02月13日
    瀏覽(95)
  • 搭建單機(jī)版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服務(wù)并設(shè)置開機(jī)自啟: 2.安裝Docker: 2.1 創(chuàng)建文件:

    2023年04月26日
    瀏覽(21)
  • 第3關(guān) 二進(jìn)制形式安裝K8s高可用生產(chǎn)級集群

    第3關(guān) 二進(jìn)制形式安裝K8s高可用生產(chǎn)級集群

    ------ 課程視頻同步分享在今日頭條和B站 大家好,我是博哥愛運維,下面是這次安裝k8s集群相關(guān)系統(tǒng)及組件的詳細(xì)版本號 Ubuntu 22.04.3 LTS k8s: v1.27.5 containerd: 1.6.23 etcd: v3.5.9 coredns: 1.11.1 calico: v3.24.6 下面是此次虛擬機(jī)集群安裝前的IP等信息規(guī)劃(完全模擬一個中小型企業(yè)K8S集群)

    2024年02月04日
    瀏覽(56)
  • 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)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包