1 Préface
C'est très simple, juste un fichier yaml
. yaml
文件即可。
2 一键部署springboot
2.1 准备yaml文件
当准备好镜像文件后,要部署到kubernetes
就非常容易了,只需要一个yaml
格式的文件即可,这个文件能描述你所需要的组件,如deployment
、service
、ingress
等。定义如下:
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
kind
:类型,有deployment
、service
、pod
、ingress
等,非常丰富;
metadata
:用于定义一些组件信息,如名字、标签等;
labels
:标签功能,非常有用,用于选择关联;但label
不提供唯一性,可以使用组合来选择;
nodeport
:对于需要给外部暴露的服务,有三种方式:nodeports
、loadbalancer
、ingress
,这里使用nodeports
;需要注意的是,默认它的端口范围是[3000-32767]
,需要其它范围则需要修改相关参数。
2.2 通过kubectl命令部署
当yaml
文件准备好之后,就可以通过以下命令部署:
$ kubectl create -f pksow-springboot.yaml deployment.apps/pkslow-springboot-deployment created service/pkslow-springboot-service created
看控制台日志则表明成功创建了deployment
和service
。查看dashboard
如下:
访问web
服务:
通过命令行检查一下:
$ 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
至此,我们已经成功把springboot
发布到kubernetes
了。
2.3 试试杀死一个pod?
kubernetes
最小管理元素并不是容器,而是pod
。
我们试着删掉一个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
可以发现,删除了其它一个pod
后,会自动为我们新生成一个pod
,这样能提高整个服务的高可用。
2.4 试试杀死一个容器?
我们再来探索一下如果杀死一个容器实例,会有什么反应。
$ docker ps $ docker rm -f 57869688a226 57869688a226 $ docker ps
经实验,杀死一个容器后,也会自动为我们重新生成一个容器实例。而pod
并不会变化,也不会重新生成。
2.5 快速扩容pod
用户请求突增,服务要撑不住了,这时需要增加pod
的个数。只需要修改yaml
配置文件的replicas
,将它更新为replicas: 4
。然后执行以下命令:
$ kubectl apply -f pksow-springboot.yaml
查看dashboard
,在原有两个pod
的基础上,增加了两个。
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
执行部署命令:
$ kubectl apply -f nginx-deployment-scale.yaml deployment.apps/nginx-deployment created service/nginx-service created
查看dashboard
2 Déploiement en un clic de springboot
2.1 Préparer le fichier yaml
Après avoir préparé le fichier image, déployez Il est très facile d'accéder à kubernetes
. Vous n'avez besoin que d'un fichier au format yaml
. Ce fichier peut décrire les composants dont vous avez besoin, tels que le déploiementcode> , <code>service
, entrée
, etc. La définition est la suivante : rrreee
kind
: type, incluant le déploiement
, le service
, le pod , <code>ingress
, etc., très riche #🎜🎜##🎜🎜#métadonnées
: utilisé pour définir certaines informations sur les composants, telles que les noms, les étiquettes, etc. .; #🎜🎜##🎜 🎜#labels
: Fonction d'étiquette, très utile pour sélectionner des associations mais label
ne fournit pas d'unicité, vous pouvez utiliser des combinaisons pour sélectionner # ; 🎜🎜##🎜🎜# nodeport
: Pour les services qui doivent être exposés à l'extérieur, il existe trois manières : nodeports
, loadbalancer
, ingress
, utilisé ici nodeports
; Il convient de noter que la plage de ports par défaut est [3000-32767]
. besoin de modifier les paramètres pertinents. #🎜🎜##🎜🎜#2.2 Déploiement via la commande kubectl #🎜🎜##🎜🎜#Lorsque le fichier yaml
est prêt, il peut être déployé via la commande suivante : #🎜🎜#rrreee# 🎜🎜 #L'examen du journal de la console montre que le déploiement
et le service
ont été créés avec succès. Affichez le tableau de bord
comme suit : #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Accès au service web
: #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Vérifiez-le via la ligne de commande : # 🎜🎜#rrreee# 🎜🎜#À ce stade, nous avons publié avec succès springboot
sur kubernetes
. #🎜🎜##🎜🎜#2.3 Essayez de tuer un pod ? #🎜🎜##🎜🎜#kubernetes
Le plus petit élément de gestion n'est pas un conteneur, mais un pod
. #🎜🎜##🎜🎜# #🎜🎜##🎜🎜# Essayons de supprimer un pod
et voyons ce qui se passe ? #🎜🎜#rrreee#🎜🎜#On peut constater qu'après avoir supprimé un autre pod
, un nouveau pod
sera automatiquement généré pour nous, ce qui peut améliorer la haute disponibilité de toute la prestation. #🎜🎜##🎜🎜#2.4 Essayez de tuer un conteneur ? #🎜🎜##🎜🎜# Explorons ce qui se passe si nous tuons une instance de conteneur. #🎜🎜#rrreee#🎜🎜#Après les expériences, après avoir tué un conteneur, une instance de conteneur sera automatiquement régénérée pour nous. Cependant, le pod
ne changera pas et ne sera pas régénéré. #🎜🎜##🎜🎜#2.5 Expansion rapide du pod#🎜🎜##🎜🎜#Il y a une augmentation soudaine des demandes des utilisateurs et le service ne sera pas en mesure de la prendre en charge Pour le moment, le nombre de pod.
doit être augmenté. Modifiez simplement les replicas
du fichier de configuration yaml
et mettez-le à jour vers replicas: 4
. Exécutez ensuite la commande suivante : #🎜🎜#rrreee#🎜🎜#View dashboard
Sur la base des deux pod
d'origine, deux autres sont ajoutés. #🎜🎜##🎜🎜# #🎜🎜##🎜🎜##🎜🎜#3 Déploiement en un clic de nginx#🎜🎜##🎜🎜##🎜🎜#Si vous n'avez pas d'image springboot
, vous pouvez utiliser l'image officielle nginx
, le fichier yaml
est le suivant : #🎜🎜#rrreee#🎜🎜#Exécuter la commande de déploiement : #🎜🎜#rrreee#🎜🎜# Visualisez le tableau de bord
comme suit : #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Accédez au service : ou . Parce que nous en avons installé deux. #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!