Heim > Java > javaLernprogramm > Hauptteil

So stellen Sie Springboot oder Nginx mit Kubernetes bereit

PHPz
Freigeben: 2023-05-12 09:25:13
nach vorne
1082 Leute haben es durchsucht

1 Vorwort

Das ist ganz einfach, nur eine yaml-Datei. yaml文件即可。

2 一键部署springboot

2.1 准备yaml文件

当准备好镜像文件后,要部署到kubernetes就非常容易了,只需要一个yaml格式的文件即可,这个文件能描述你所需要的组件,如deploymentserviceingress等。定义如下:

apiversion: apps/v1
kind: deployment
metadata:
 name: pkslow-springboot-deployment
spec:
 selector:
 matchlabels:
  app: springboot
 replicas: 2
 template:
 metadata:
  labels:
  app: springboot
 spec:
  containers:
  - name: springboot
   image: pkslow/springboot-mongo:0.0.6
   ports:
   - containerport: 8080

---
apiversion: v1
kind: service
metadata:
 labels:
 app: springboot
 name: pkslow-springboot-service
spec:
 ports:
 - port: 8080
  name: springboot-service
  protocol: tcp
  targetport: 8080
  nodeport: 30080
 selector:
 app: springboot
 type: nodeport
Nach dem Login kopieren

kind:类型,有deploymentservicepodingress等,非常丰富;

metadata:用于定义一些组件信息,如名字、标签等;

labels:标签功能,非常有用,用于选择关联;但label不提供唯一性,可以使用组合来选择;

nodeport:对于需要给外部暴露的服务,有三种方式:nodeportsloadbalanceringress,这里使用nodeports;需要注意的是,默认它的端口范围是[3000-32767],需要其它范围则需要修改相关参数。

2.2 通过kubectl命令部署

yaml文件准备好之后,就可以通过以下命令部署:

$ kubectl create -f pksow-springboot.yaml 
deployment.apps/pkslow-springboot-deployment created
service/pkslow-springboot-service created
Nach dem Login kopieren

看控制台日志则表明成功创建了deploymentservice。查看dashboard如下:

So stellen Sie Springboot oder Nginx mit Kubernetes bereit

访问web服务:

So stellen Sie Springboot oder Nginx mit Kubernetes bereit

通过命令行检查一下:

$ kubectl get deployment
name       ready up-to-date available age
pkslow-springboot-deployment 2/2  2   2   8m2s

$ kubectl get service
name      type  cluster-ip  external-ip port(s)   age
kubernetes     clusterip 10.96.0.1  <none>  443/tcp   10m
pkslow-springboot-service nodeport 10.102.218.119 <none>  8080:30080/tcp 8m7s

$ kubectl get pod
name           ready status restarts age
pkslow-springboot-deployment-68dffc6795-874tp 1/1  running 0   8m15s
pkslow-springboot-deployment-68dffc6795-89xww 1/1  running 0   8m15s
Nach dem Login kopieren

至此,我们已经成功把springboot发布到kubernetes了。

2.3 试试杀死一个pod?

kubernetes最小管理元素并不是容器,而是pod

So stellen Sie Springboot oder Nginx mit Kubernetes bereit

我们试着删掉一个pod,看看会发生什么?

$ kubectl delete pod pkslow-springboot-deployment-68dffc6795-89xww
pod "pkslow-springboot-deployment-68dffc6795-89xww" deleted

$ kubectl get pod
name           ready status restarts age
pkslow-springboot-deployment-68dffc6795-874tp 1/1  running 0   13m
pkslow-springboot-deployment-68dffc6795-gpw67 1/1  running 0   46s
Nach dem Login kopieren

可以发现,删除了其它一个pod后,会自动为我们新生成一个pod,这样能提高整个服务的高可用。

2.4 试试杀死一个容器?

我们再来探索一下如果杀死一个容器实例,会有什么反应。

$ docker ps
$ docker rm -f 57869688a226
57869688a226

$ docker ps
Nach dem Login kopieren

经实验,杀死一个容器后,也会自动为我们重新生成一个容器实例。而pod并不会变化,也不会重新生成。

2.5 快速扩容pod

用户请求突增,服务要撑不住了,这时需要增加pod的个数。只需要修改yaml配置文件的replicas,将它更新为replicas: 4。然后执行以下命令:

$ kubectl apply -f pksow-springboot.yaml
Nach dem Login kopieren

查看dashboard,在原有两个pod的基础上,增加了两个。

So stellen Sie Springboot oder Nginx mit Kubernetes bereit

3 一键部署nginx

如果大家没有springboot的镜像,可以使用官方的nginx镜像,yaml文件如下:

apiversion: apps/v1
kind: deployment
metadata:
 name: nginx-deployment
spec:
 selector:
 matchlabels:
  app: nginx
 replicas: 3
 template:
 metadata:
  labels:
  app: nginx
 spec:
  containers:
  - name: nginx
   image: nginx:1.19.0
   ports:
   - containerport: 80

---
apiversion: v1
kind: service
metadata:
 labels:
 app: nginx
 name: nginx-service
spec:
 ports:
 - port: 80
  name: nginx-service1
  protocol: tcp
  targetport: 80
  nodeport: 30000
 - port: 81
  name: nginx-service2
  protocol: tcp
  targetport: 80
  nodeport: 30001
 selector:
 app: nginx
 type: nodeport
Nach dem Login kopieren

执行部署命令:

$ kubectl apply -f nginx-deployment-scale.yaml 
deployment.apps/nginx-deployment created
service/nginx-service created
Nach dem Login kopieren

查看dashboard

2 Ein-Klick-Bereitstellung von SpringbootSo stellen Sie Springboot oder Nginx mit Kubernetes bereit

2.1 Yaml-Datei vorbereiten

Nach der Vorbereitung der Image-Datei ist die Bereitstellung auf kubernetes sehr einfach, nur ein yamlwird benötigt > Formatdatei kann verwendet werden. Diese Datei kann die von Ihnen benötigten Komponenten beschreiben, z. B. deployment, service, ingress usw. Die Definition lautet wie folgt: So stellen Sie Springboot oder Nginx mit Kubernetes bereitrrreee

kind: Typ, einschließlich deployment, service, pod, ingress usw., sehr umfangreich; 🎜🎜<code>metadata: wird verwendet, um einige Komponenteninformationen wie Namen, Labels usw. zu definieren; 🎜🎜labels : Label-Funktion, sehr nützlich, zum Auswählen von Assoziationen verwenden; label bietet jedoch keine Eindeutigkeit, Sie können Kombinationen zum Auswählen verwenden 🎜🎜nodeport: Für Dienste, die sein müssen Nach außen hin gibt es drei Möglichkeiten: nodeports, loadbalancer, ingress, nodeports wird hier verwendet; Beachten Sie, dass der Standard-Portbereich [ 3000-32767] ist. Wenn Sie andere Bereiche benötigen, müssen Sie die entsprechenden Parameter ändern. 🎜🎜2.2 Bereitstellung über den Befehl kubectl🎜🎜Wenn die yaml-Datei fertig ist, können Sie sie mit dem folgenden Befehl bereitstellen: 🎜rrreee🎜Ein Blick auf das Konsolenprotokoll zeigt, dass die deployment wurde erfolgreich erstellt und service. Sehen Sie sich das Dashboard wie folgt an: 🎜🎜So verwenden Sie Kubernetes um Springboot oder Nginx bereitzustellen🎜🎜Besuchen Sie den Web-Dienst: 🎜🎜So stellen Sie Springboot oder Nginx mit Kubernetes bereit🎜🎜Überprüfen Sie es über die Befehlszeile: 🎜rrreee🎜Zu diesem Zeitpunkt haben wir springboot erfolgreich auf kubernetes veröffentlicht . 🎜🎜2.3 Versuchen Sie, eine Schote zu töten? 🎜🎜kubernetesDas kleinste Verwaltungselement ist kein Container, sondern ein Pod. 🎜🎜So verwenden Sie Kubernetes zum Bereitstellen von Springboot oder Nginx🎜🎜Wir versuchen es löschen Einen Pod ablegen und sehen, was passiert? 🎜rrreee🎜Sie können feststellen, dass nach dem Löschen eines anderen Pod automatisch ein neuer Pod für uns generiert wird, was die Hochverfügbarkeit des gesamten Dienstes verbessern kann. 🎜🎜2.4 Versuchen Sie, einen Container zu töten? 🎜🎜Lassen Sie uns untersuchen, was passiert, wenn wir eine Containerinstanz beenden. 🎜rrreee🎜Nach Experimenten wird nach dem Beenden eines Containers automatisch eine Containerinstanz für uns neu generiert. pod wird jedoch nicht geändert oder neu generiert. 🎜🎜2.5 Schnelle Pod-Erweiterung🎜🎜Benutzeranfragen nehmen plötzlich zu und der Dienst kann dies nicht unterstützen. Zu diesem Zeitpunkt müssen Sie die Anzahl der Pod erhöhen. Ändern Sie einfach die replicas der yaml-Konfigurationsdatei und aktualisieren Sie sie auf replicas: 4. Führen Sie dann den folgenden Befehl aus: 🎜rrreee🎜View dashboard Basierend auf den ursprünglichen zwei pod werden zwei weitere hinzugefügt. 🎜🎜So verwenden Sie Kubernetes zum Bereitstellen von Springboot oder Nginx🎜🎜🎜3 Mit einem Klick nginx bereitstellen🎜🎜🎜Wenn Sie kein springboot-Image haben, können Sie das offizielle nginx-Image verwenden. Die yaml-Datei ist wie folgt: 🎜rrreee🎜Führen Sie den Bereitstellungsbefehl aus: 🎜rrreee🎜Sehen Sie sich dashboard wie folgt an: 🎜🎜🎜🎜🎜Greifen Sie auf den Dienst zu: oder . Weil wir zwei aufgestellt haben. 🎜🎜🎜🎜

Das obige ist der detaillierte Inhalt vonSo stellen Sie Springboot oder Nginx mit Kubernetes bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage