日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

如何把Spring Cloud Data Flow部署在Kubernetes上

瀏覽:27日期:2023-08-23 16:54:59

1 前言

Spring Cloud Data Flow在本地跑得好好的,為什么要部署在Kubernetes上呢?主要是因?yàn)镵ubernetes能提供更靈活的微服務(wù)管理;在集群上跑,會(huì)更安全穩(wěn)定、更合理利用物理資源。

Spring Cloud Data Flow入門簡(jiǎn)介請(qǐng)參考:Spring Cloud Data Flow初體驗(yàn),以Local模式運(yùn)行

2 部署Data Flow到Kubernetes

以簡(jiǎn)單為原則,我們依然是基于Batch任務(wù),不部署與Stream相關(guān)的組件。

2.1 下載GitHub代碼

我們要基于官方提供的部署代碼進(jìn)行修改,先把官方代碼clone下來(lái):

$ git clone https://github.com/spring-cloud/spring-cloud-dataflow.git

我們切換到最新穩(wěn)定版本的代碼版本:

$ git checkout v2.5.3.RELEASE

2.2 創(chuàng)建權(quán)限賬號(hào)

為了讓Data Flow Server有權(quán)限來(lái)跑任務(wù),能在Kubernetes管理資源,如新建Pod等,所以要?jiǎng)?chuàng)建對(duì)應(yīng)的權(quán)限賬號(hào)。這部分代碼與源碼一致,不需要修改:

(1)server-roles.yaml

kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: scdf-rolerules: - apiGroups: [''] resources: ['services', 'pods', 'replicationcontrollers', 'persistentvolumeclaims'] verbs: ['get', 'list', 'watch', 'create', 'delete', 'update'] - apiGroups: [''] resources: ['configmaps', 'secrets', 'pods/log'] verbs: ['get', 'list', 'watch'] - apiGroups: ['apps'] resources: ['statefulsets', 'deployments', 'replicasets'] verbs: ['get', 'list', 'watch', 'create', 'delete', 'update', 'patch'] - apiGroups: ['extensions'] resources: ['deployments', 'replicasets'] verbs: ['get', 'list', 'watch', 'create', 'delete', 'update', 'patch'] - apiGroups: ['batch'] resources: ['cronjobs', 'jobs'] verbs: ['create', 'delete', 'get', 'list', 'watch', 'update', 'patch']

(2)server-rolebinding.yaml

kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1beta1metadata: name: scdf-rbsubjects:- kind: ServiceAccount name: scdf-saroleRef: kind: Role name: scdf-role apiGroup: rbac.authorization.k8s.io

(3)service-account.yaml

apiVersion: v1kind: ServiceAccountmetadata: name: scdf-sa

執(zhí)行以下命令,創(chuàng)建對(duì)應(yīng)賬號(hào):

$ kubectl create -f src/kubernetes/server/server-roles.yaml $ kubectl create -f src/kubernetes/server/server-rolebinding.yaml $ kubectl create -f src/kubernetes/server/service-account.yaml

執(zhí)行完成后,可以檢查一下:

$ kubectl get roleNAME AGEscdf-role 119m$ kubectl get rolebindingNAME AGEscdf-rb 117m$ kubectl get serviceAccountNAME SECRETS AGEdefault 1 27dscdf-sa 1 117m

2.3 部署MySQL

可以選擇其它數(shù)據(jù)庫(kù),如果本來(lái)就有數(shù)據(jù)庫(kù),可以不用部署,在部署Server的時(shí)候改一下配置就好了。這里跟著官方的Guide來(lái)。為了保證部署不會(huì)因?yàn)殓R像下載問(wèn)題而失敗,我提前下載了鏡像:

$ docker pull mysql:5.7.25

MySQL的yaml文件也不需要修改,直接執(zhí)行以下命令即可:

$ kubectl create -f src/kubernetes/mysql/

執(zhí)行完后檢查一下:

$ kubectl get SecretNAME TYPE DATA AGEdefault-token-jhgfp kubernetes.io/service-account-token 3 27dmysql Opaque 2 98mscdf-sa-token-wmgk6 kubernetes.io/service-account-token 3 123m$ kubectl get PersistentVolumeClaimNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEmysql Bound pvc-e95b495a-bea5-40ee-9606-dab8d9b0d65c 8Gi RWO hostpath 98m$ kubectl get DeploymentNAME READY UP-TO-DATE AVAILABLE AGEmysql 1/1 1 1 98m$ kubectl get ServiceNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEmysql ClusterIP 10.98.243.130 <none> 3306/TCP 98m

2.4 部署Data Flow Server

2.4.1 修改配置文件server-config.yaml

刪除掉不用的配置,主要是Prometheus和Grafana的配置,結(jié)果如下:

apiVersion: v1kind: ConfigMapmetadata: name: scdf-server labels: app: scdf-serverdata: application.yaml: |- spring: cloud: dataflow: task: platform: kubernetes: accounts: default: limits: memory: 1024Mi datasource: url: jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/mysql username: root password: ${mysql-root-password} driverClassName: org.mariadb.jdbc.Driver testOnBorrow: true validationQuery: 'SELECT 1'

2.4.2 修改server-svc.yaml

因?yàn)槲沂潜镜剡\(yùn)行的Kubernetes,所以把Service類型從LoadBalancer改為NodePort,并配置端口為30093。

kind: ServiceapiVersion: v1metadata: name: scdf-server labels: app: scdf-server spring-deployment-id: scdfspec: # If you are running k8s on a local dev box or using minikube, you can use type NodePort instead type: NodePort ports: - port: 80 name: scdf-server nodePort: 30093 selector: app: scdf-server

2.4.3 修改server-deployment.yaml

主要把Stream相關(guān)的去掉,如SPRING_CLOUD_SKIPPER_CLIENT_SERVER_URI配置項(xiàng):

apiVersion: apps/v1kind: Deploymentmetadata: name: scdf-server labels: app: scdf-serverspec: selector: matchLabels: app: scdf-server replicas: 1 template: metadata: labels: app: scdf-server spec: containers: - name: scdf-server image: springcloud/spring-cloud-dataflow-server:2.5.3.RELEASE imagePullPolicy: IfNotPresent volumeMounts: - name: database mountPath: /etc/secrets/database readOnly: true ports: - containerPort: 80 livenessProbe: httpGet: path: /management/health port: 80 initialDelaySeconds: 45 readinessProbe: httpGet: path: /management/info port: 80 initialDelaySeconds: 45 resources: limits: cpu: 1.0 memory: 2048Mi requests: cpu: 0.5 memory: 1024Mi env: - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: 'metadata.namespace' - name: SERVER_PORT value: ’80’ - name: SPRING_CLOUD_CONFIG_ENABLED value: ’false’ - name: SPRING_CLOUD_DATAFLOW_FEATURES_ANALYTICS_ENABLED value: ’true’ - name: SPRING_CLOUD_DATAFLOW_FEATURES_SCHEDULES_ENABLED value: ’true’ - name: SPRING_CLOUD_KUBERNETES_SECRETS_ENABLE_API value: ’true’ - name: SPRING_CLOUD_KUBERNETES_SECRETS_PATHS value: /etc/secrets - name: SPRING_CLOUD_KUBERNETES_CONFIG_NAME value: scdf-server - name: SPRING_CLOUD_DATAFLOW_SERVER_URI value: ’http://${SCDF_SERVER_SERVICE_HOST}:${SCDF_SERVER_SERVICE_PORT}’ # Add Maven repo for metadata artifact resolution for all stream apps - name: SPRING_APPLICATION_JSON value: '{ 'maven': { 'local-repository': null, 'remote-repositories': { 'repo1': { 'url': 'https://repo.spring.io/libs-snapshot'} } } }' initContainers: - name: init-mysql-wait image: busybox command: [’sh’, ’-c’, ’until nc -w3 -z mysql 3306; do echo waiting for mysql; sleep 3; done;’] serviceAccountName: scdf-sa volumes: - name: database secret: secretName: mysql

2.4.4 部署Server

完成文件修改后,就可以執(zhí)行以下命令部署了:

# 提前下載鏡像$ docker pull springcloud/spring-cloud-dataflow-server:2.5.3.RELEASE# 部署Data Flow Server$ kubectl create -f src/kubernetes/server/server-config.yaml $ kubectl create -f src/kubernetes/server/server-svc.yaml $ kubectl create -f src/kubernetes/server/server-deployment.yaml

執(zhí)行完成,沒(méi)有錯(cuò)誤就可以訪問(wèn):http://localhost:30093/dashboard/

如何把Spring Cloud Data Flow部署在Kubernetes上

3 運(yùn)行一個(gè)Task

檢驗(yàn)是否部署成功最簡(jiǎn)單的方式就是跑一個(gè)任務(wù)試試。還是按以前的步驟,先注冊(cè)應(yīng)用,再定義Task,然后執(zhí)行。

我們依舊使用官方已經(jīng)準(zhǔn)備好的應(yīng)用,但要注意這次我們選擇是的Docker格式,而不是jar包了。

如何把Spring Cloud Data Flow部署在Kubernetes上

如何把Spring Cloud Data Flow部署在Kubernetes上

成功執(zhí)行后,查看Kubernetes的Dashboard,能看到一個(gè)剛創(chuàng)建的Pod:

如何把Spring Cloud Data Flow部署在Kubernetes上

4 總結(jié)

本文通過(guò)一步步講解,把Spring Cloud Data Flow成功部署在了Kubernetes上,并成功在Kubenetes上跑了一個(gè)任務(wù),再也不再是Local本地單機(jī)模式了。

到此這篇關(guān)于把Spring Cloud Data Flow部署在Kubernetes上,再跑個(gè)任務(wù)試試的文章就介紹到這了,更多相關(guān)把Spring Cloud Data Flow部署在Kubernetes上,再跑個(gè)任務(wù)試試內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品精品| 欧美精品激情| 国产精品免费看| 国产精品精品| 91精品韩国| 久久黄色影院| 国产精品片aa在线观看| 国产成人精品福利| 深夜日韩欧美| 国产欧美日韩一区二区三区四区 | 亚洲91久久| 岛国av免费在线观看| 国产不卡一区| 私拍精品福利视频在线一区| 99国产精品久久久久久久| 亚洲欧美日韩精品一区二区| 日韩成人午夜精品| 精品五月天堂| 极品av在线| 久久都是精品| 卡一精品卡二卡三网站乱码| 三上悠亚国产精品一区二区三区| 悠悠资源网久久精品| 国产乱码精品一区二区亚洲| 波多野结衣久久精品| 亚洲专区视频| 久久婷婷一区| 国产欧美一区二区三区国产幕精品 | 亚洲午夜黄色| 国产精品免费不| 精品一区欧美| 日本亚洲最大的色成网站www| 欧美日韩一区二区三区不卡视频| av资源新版天堂在线| 丝袜a∨在线一区二区三区不卡| 国产亚洲欧美日韩精品一区二区三区 | 亚洲精品网址| 国产精品麻豆成人av电影艾秋| 国产a亚洲精品| 日韩**一区毛片| 99精品小视频| 国产精品v一区二区三区| 久久午夜精品一区二区| 视频福利一区| 久久精品国产网站| 好看的av在线不卡观看| 久久99国产精品视频| 日韩中出av| 亚洲综合不卡| 欧美精品羞羞答答| 日韩欧美自拍| 精品久久福利| 欧美精品1区| 午夜日韩影院| 亚洲精品韩国| 免费观看在线综合| 伊人久久亚洲美女图片| 日本国产精品| 欧美黄色网页| 婷婷激情一区| 久久精品天堂| 日本成人中文字幕在线视频| 国产不卡人人| 另类综合日韩欧美亚洲| 中文字幕在线免费观看视频| 午夜日韩福利| 国产精品日本一区二区不卡视频| xxxxx性欧美特大| 91精品在线观看国产| 国产伊人久久| 99精品视频在线观看免费播放| 午夜精品免费| 国产探花一区在线观看| 麻豆国产欧美一区二区三区| аⅴ资源天堂资源库在线| 亚洲精品国产偷自在线观看| 日精品一区二区三区| 欧美91在线| 久久精品播放| 日本午夜精品一区二区三区电影| 久久精品国内一区二区三区| 国产精品99一区二区| 日本不卡不码高清免费观看| 国产精品久久久久久久久久白浆 | 日韩精品高清不卡| 国产精品欧美一区二区三区不卡| 久久精品国内一区二区三区水蜜桃| 免费精品视频在线| 国内不卡的一区二区三区中文字幕| 日本高清不卡一区二区三区视频| 伊人久久成人| 日本高清久久| 国产在线看片免费视频在线观看| 每日更新成人在线视频| 精品国产aⅴ| 爽好多水快深点欧美视频| 桃色av一区二区| 日韩精品高清不卡| 久久精品卡一| 国产精品1区| 亚洲精品无吗| 欧美aa国产视频| 水蜜桃精品av一区二区| 欧美日一区二区三区在线观看国产免| 91久久视频| 国产精品老牛| 亚洲午夜免费| 美女尤物久久精品| 日韩av不卡在线观看| 黄色日韩精品| 久久婷婷一区| 日韩国产一区| 国产精品一区二区中文字幕| 精品国模一区二区三区| 国产精品天堂蜜av在线播放| 日韩欧美激情电影| 日韩一区二区三区免费视频| 天使萌一区二区三区免费观看| 欧美91精品| 久久中文视频| 日产精品一区| 伊人久久大香线蕉av不卡| 亚洲精品一二三区区别| 91精品韩国| 午夜国产一区二区| 国产精品分类| 国际精品欧美精品| 久久亚洲精精品中文字幕| 美女福利一区二区三区| 亚洲一区二区成人| 国产乱人伦丫前精品视频| 国产v日韩v欧美v| 亚洲精品一二三区区别| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 在线亚洲欧美| 蜜臀精品一区二区三区在线观看| 国产+成+人+亚洲欧洲在线| 国产欧美自拍| 国产精品a级| 国产99久久| 亚洲三级网站| 久久精品国产99久久| 亚洲va久久| 97精品一区| 丝袜美腿一区二区三区| 美女视频黄久久| 久久国产直播| 91欧美极品| 欧美日韩国产高清电影| 日韩一区二区免费看| 亚洲精品人人| 青青青免费在线视频| 久久久精品午夜少妇| 国产精品啊v在线| 97在线精品| 久久av国产紧身裤| 国产va免费精品观看精品视频| 国产欧美一区| 日韩精品1区2区3区| 香蕉久久国产| 亚洲天堂久久| 日韩av电影一区| 色在线中文字幕| 亚洲综合中文| 久久狠狠久久| 国产精品白浆| 日韩欧美视频专区| 亚洲一区二区动漫| 国产伦精品一区二区三区千人斩 | 97精品国产福利一区二区三区| 欧美日韩视频一区二区三区| 色婷婷亚洲mv天堂mv在影片| 中文字幕一区二区三区日韩精品| 美女久久久久久| 日本在线不卡视频| 激情综合网五月| 国产精品地址| 亚洲午夜视频| 欧美日韩国产探花| 久久婷婷激情| 日韩不卡视频在线观看| 久久爱www成人| 久久女人天堂| 精品久久99| 久久精品免视看国产成人| 日本久久精品| 91精品久久久久久久久久不卡| 日韩大片在线观看| 不卡中文字幕| 在线综合亚洲| 偷拍亚洲精品| 蜜臀av一区二区在线免费观看 | 日本强好片久久久久久aaa| 另类欧美日韩国产在线| 欧美国产视频| 日韩三区免费| 日韩高清一区二区| 日韩啪啪电影网| 久久黄色影视| 亚洲一区黄色|