国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

只需五步,將Spring Boot服務遷移到Kubernetes

開源 云原生
如果預算有限,想以低成本獲得彈性Beanstalk的所有好處,可以使用Kubernetes,并且它是開源的!

當許多Java開發人員使用Spring框架來快速創建Web服務,但是其在生產環境中運行可能是個比較大的挑戰,因為有很多運行方式和云提供商。當然您可以使用像AWS Elastic Beanstalk這樣的服務來保持其運行,實現自動縮放、零停機部署、無需部署新版本的基礎設施經驗等等。但是,這些服務對于預算較低的人來說會花費很多錢,同時失去對服務基礎設施的控制。

如果預算有限,想以低成本獲得彈性Beanstalk的所有好處,可以使用Kubernetes,并且它是開源的!

1. 生成Docker鏡像

Kubernetes是一個容器編排平臺,它可以自動化地部署、擴展和管理容器化應用程序。Kubernetes的工作原理是這樣的:您可以從應用程序創建Docker鏡像,并“告訴”Kubernetes啟動您創建的一個或多個鏡像實例。然后,Kubernetes會自動將這些實例分配給可用的節點,并確保它們始終處于運行狀態。如果有節點失敗或需要擴展應用程序,則Kubernetes會自動重新分配實例,以確保應用程序始終處于可用狀態。因此,我們的第一步是從Spring Boot服務創建一個鏡像。

以下一個Dockerfile示例:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
MAINTAINER Samuel Birocchi <samuel.birocchi@gobots.com.br>
ADD target/*.jar app.jar
COPY newrelic newrelic

ENV JAVA_OPTS=""
ENV SPRING_PROFILE="default"
ENV MONGO_PASSWORD=""

ENTRYPOINT exec java $JAVA_OPTS \
 -javaagent:newrelic/newrelic.jar \
 -Djava.security.egd=file:/dev/./urandom \
 -Dspring.profiles.active=$SPRING_PROFILE \
 -Dmongo.password=$MONGO_PASSWORD \
 -jar app.jar

有了這個和docker build插件,我們可以運行gradle clean buildDocker(或使用maven docker插件)來構建docker鏡像。請注意,它將創建一個帶有gradle.properties或build.gradle上配置的版本標簽的映像。

2. 創建部署和Pods

現在要將創建好的鏡像放在Kubernetes上,我們需要將其上傳到注冊表中。我們可以上傳到公共docker注冊表,但是該映像將對每個人都可用!由于我們的服務是私有的,因此我們需要上傳到私有注冊表。幸運的是,Gcloud為您的帳戶提供了私有注冊表。

這樣一來,就可以最終將服務放在Kubernetes集群上了!由于正在使用Gcloud,因此使用GKE創建集群非常容易,請按照本教程進行操作。創建集群后,配置命令行連接它后,需要為應用程序創建部署(或復制控制器)以實現可擴展性。使用以下配置作為初始配置:

apiVersion: apps/v1beta1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: spring-boot-deployment
spec:
  selector:
    matchLabels:
      app: spring-boot-app
  replicas: 3 # tells deployment to run 3 pods matching the template
  template: # create pods using pod definition in this template
    metadata:
      labels:
        app: spring-boot-app
    spec:
      containers:
      - name: spring-boot-app
        image: #your image name here
        ports:
        - containerPort: 8080
          name: server
        - containerPort: 8081
          name: management

考慮到在最后一步中配置了Kubernetes命令行界面(kubectl),因此我們可以使用kubectl apply -f Deployment.yml為Kubernetes集群創建一個新的部署,并使用此配置。過一段時間后,您可以使用kubectl get deployment spring-boot-deployment檢查部署的狀態,并使用kubectl get pods spring-boot-app檢查pod的狀態。如果要檢查pod的日志,則可以使用kubectl log命令。

3. 使用服務公開我們的Pods

現在,我們的Pod正在運行,需要創建一個服務來將Pod公開。使用下配置創建服務:

apiVersion: v1
kind: Service
metadata:
  name: spring-boot-service
spec:
  ports:
  - port: 8080
    targetPort: 8080
    name: http
  - port: 8081
    targetPort: 8081
    name: management
  selector:
    app: spring-boot-app
  type: NodePort

正如所看到的,服務配置非常簡單。但是,此配置未公開。我們可以將服務類型設置為LoadBalancer,因為gcloud會自動為我們的服務創建真正的負載均衡器和外部IP。實際上嘗試使用此配置我們無法正確設置TLS和HTTPS,我們希望服務僅通過HTTPS協議訪問。但是該怎么做呢?

4. 使用Ingress進行路由

可以找到Kubernetes Ingress來使用。它是一個較新的功能,但非常有效。它幾乎像一個類型為LoadBalancer的服務,但您可以設置自定義路由規則。下面是Ingress配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: spring-boot-ingress
  annotations:
    kubernetes.io/ingress.allow-http: "false"
spec:
  tls:
  - secretName: your-tls-secret
  backend:
    serviceName: spring-boot-service
    servicePort: 8080

正如所看到的,我們將入口設置為僅允許使用kubernetes.io/ingress.allow-http:"false"進行HTTPS連接。但是,您會發現此文件中有TLS配置。我們需要首先創建一個Secret,其中包含用于Ingress訪問的ssl證書數據。使用下文配置即可完成此操作。

5. Secrets

apiVersion: v1
data:
  tls.crt: #base64 hash of your cert
  tls.key: #base64 hash of your key
kind: Secret
metadata:
  name: your-tls-secret
  namespace: default
type: Opaque

應用所有配置后,我們可以使用 kubectl get ingress spring-boot-ingress 命令檢查應用程序的外部 IP。通過 HTTPS 訪問,我們的 Spring Boot 應用程序就運行在 Kubernetes 集群上了!

重要!Kubernetes服務對默認pod端口和端點“/”執行健康檢查。如果您沒有映射該端點或者它受到保護,則需要加入livenessProbe和readinessProbe配置。

建議在部署到生產之前使用minikube測試這些設置,以便您熟悉Kubernetes環境。

要部署新版本,請使用kubectl set image deployment/spring-boot-deployment spring-boot-app=your-new-image或僅使用kubectl edit deployment spring-boot-deployment編輯配置。使用第二個命令,您可以同時更新圖像和Pod的數量。如果您只想擴展應用程序,請運行kubectl scale deployment spring-boot-deployment --replicas=10或創建自動縮放配置。

更新部署會導致Kubernetes滾動更新,無需停機,因為它會處理所有內容,您只需坐下來放松即可。將基礎架構更改為GKE后,可以減少關注應用程序的健康狀況,更多地關注開發。Kubernetes非常易于與CI工具(如Jenkins、GitLab CI、BitBucket Pipelines等)一起使用。

責任編輯:趙寧寧 來源: Java學研大本營
相關推薦

2023-08-01 19:16:01

Spring編程瀏覽器

2022-11-01 08:55:55

編譯工具MavenSpring

2020-05-06 13:47:42

ZooKeeperKubernetes遷移

2022-08-05 07:37:39

單體架構遷移微服務

2022-02-15 09:36:13

容器應用程序云服務

2020-09-02 07:20:48

KubernetesJava應用程序容器

2022-11-28 11:43:24

數據分析不及格數據驗證

2010-05-31 10:34:00

Windows下配置S

2022-11-02 15:25:03

云數據庫云平臺

2021-09-28 08:00:32

數據安全網絡風險網絡安全

2016-12-12 19:16:43

數據云端

2012-10-29 09:27:16

2020-05-21 11:12:38

DaaSDevOps托管服務

2015-03-20 13:40:17

2018-01-10 16:07:55

數據數據分析企業轉型

2019-06-05 15:15:51

云端云計算遷移

2019-06-05 13:32:38

云端云計算云遷移

2021-08-18 10:36:43

Sping社區實驗項目服務器

2019-11-15 09:02:50

OpenJDKGitHub

2021-06-25 11:05:46

云平臺安全挑戰業務遷移
點贊
收藏

51CTO技術棧公眾號

五月天婷婷在线视频| 久久久综合视频| 中国在线观看免费国语版电影| 91免费观看网站| 欧美性大战久久久久久久| 男人天堂欧美日韩| 日本精品视频| 国产大片在线免费观看| 中文字幕日本最新乱码视频| 成人在线视频福利| 欧美成年人网站| 在线日韩一区二区| 国产婷婷精品av在线| 在线欧美日韩| 欧美精品国产白浆久久久久| a级影片在线观看| 精彩国产在线| 国产福利电影在线观看| 中文字幕综合在线观看| 国产精品福利网站| 亚洲精品中文字幕有码专区| 在线免费观看一区| 中文字幕亚洲精品在线观看| 青青草成人在线观看| 91成人精品| 中文字幕精品影院| 88久久精品| 伊人久久国产| 在线不卡日本v二区707| 欧美成人综合在线| 欧美精品a∨在线观看不卡 | 国产精品免费av| 国产高清在线观看免费不卡| 伊人久久成人| 午夜精品国产| 小嫩嫩精品导航| 免费欧美在线视频| 激情综合网av| 亚洲天堂成人在线观看| 国产精品久久久久久久第一福利| 久久久一区二区三区捆绑**| 丁香婷婷综合色啪| 国产成人精品午夜视频免费| 国产精品久久久久天堂| 99九九99九九九视频精品| 久久综合色综合88| 中文字幕精品三区| 一区二区三区国产| 精品日韩中文字幕| 91福利精品第一导航| 欧美理论片在线| 日韩电影中文字幕一区| 亚洲成人精品久久| 久久久精品日本| 国产成人精品久久二区二区| 欧美在线欧美在线| 精品久久精品久久| 国产精品国产三级国产专区51| 欧美 国产 小说 另类| 日日噜噜噜夜夜爽爽狠狠| 绯色av一区| 日本中文字幕在线观看| 国产精品12| 国产a级片网站| 亚州黄色一级| 日韩中文在线播放| 台湾佬综合网| 国产自产v一区二区三区c| 久久综合一区二区| 香蕉av福利精品导航| 精品三级在线观看| 久久艹在线视频| 国产精品日韩一区二区三区 | a级片国产精品自在拍在线播放| 精品精品导航| 欧美有码在线| 国产中文一区二区三区| 国产精品美女久久久久久2018| 欧美蜜桃一区二区三区| 久久成人一区二区| 一区二区三区四区免费视频| 1024精品视频| 国产中文字幕在线| 九九热这里有精品| 久久激情婷婷| 亚洲一区二区三区影院| 一区二区三区亚洲| 精品一区二区三区免费毛片| 黄色成人羞羞视频| 国产日本久久| 国产91丝袜在线观看| 亚洲国产精品久久精品怡红院| 亚洲激情图片| 国产偷倩在线播放| 韩国精品一区二区| 一区二区国产精品视频| 日韩中文字幕二区| 精品国内亚洲2022精品成人| 日韩经典中文字幕一区| 粉嫩久久久久久久极品| 26uuu欧美| 亚洲成**性毛茸茸| 国产精品精品久久久| 欧美国产日韩二区| 国产wwwxx| 亚洲欧洲一区二区天堂久久| 日韩三级免费观看| av黄色在线网站| 国产精品久久久久久麻豆一区软件 | 精品国产美女| 91精品国产一区二区人妖| 国产高清av在线播放| 精品国产乱码久久久久久蜜坠欲下| 欧洲色大大久久| 国产成人一区二区三区别| 性人久久久久| 69堂亚洲精品首页| 色噜噜狠狠永久免费| 久久一二三四| 91av在线不卡| 欧美78videosex性欧美| 国产精品国产自产拍在线| 亚洲精品电影在线一区| 久久亚洲专区| 欧美肥老妇视频| 二吊插入一穴一区二区| 日韩免费视频一区二区| 激情小视频在线| 欧美日韩国产一中文字不卡| 亚洲欧美成人一区| 精品一区91| 亚洲一区二区美女| 老司机av福利| 最近国产精品视频| 欧美日韩激情一区二区三区| 国产日产欧美一区二区| 欧美激情极品| 欧美日韩你懂的| 日韩欧美精品一区二区三区经典| 成人免费网站www网站高清| 亚洲国产欧美一区二区三区丁香婷| 在线播放一区二区三区| 国产最新免费视频| 欧美国产先锋| 伊人久久免费视频| 99re精彩视频| 国产一区二区高清| 欧美精品一区二区三区国产精品| 最全影音av资源中文字幕在线| 青青草97国产精品免费观看 | 在线成人小视频| 欧美婷婷精品激情| 日韩电影免费在线| 欧美一级视频免费在线观看| 欧美亚洲韩国| 欧美视频一区二| 无遮挡又爽又刺激的视频| 欧美精品激情| 久久久精品在线| 精品国产丝袜高跟鞋| 亚洲欧美色图小说| 精品久久一二三| 国产毛片一区| 亚洲一区二区少妇| 99a精品视频在线观看| 日韩精品在线视频美女| 男人和女人做事情在线视频网站免费观看 | 最近2019中文字幕大全第二页| 99re热久久这里只有精品34| 亚洲成av人片一区二区梦乃| 很污的网站在线观看| 成人小视频免费观看| 久久一区免费| 日韩国产欧美在线观看| 国产精品久久九九| 久久久久久久久久久久久久| 国产精品国产福利国产秒拍| 视频精品二区| 久久久久久久一区二区| 伊人久久大香伊蕉在人线观看热v| 亚洲三级av在线| 天堂а√在线最新版中文在线| 日韩高清av在线| 成人1区2区| 色妞欧美日韩在线| 成人h动漫精品一区二区器材| 欧美国产亚洲视频| 九九热线有精品视频99| 国产精品久久久久77777| 国产麻豆精品久久| 国产日韩欧美夫妻视频在线观看 | 国产三级精品在线| 欧美日韩在线不卡视频| 成人美女视频在线观看| 无码人妻精品一区二区三区66| 久久综合久久鬼色| 波多野结衣xxxx| 欧美午夜精品久久久久久孕妇| 在线播放日本| 亚洲欧洲在线视频|