(10) Déploiement du cluster de serveurs K8S Projet SpringBoot combat réel

1. Préparer le projet springboot

Vous pouvez préparer un projet sur le site https://start.spring.io/ , ici en tant qu'apprentissage k8s, alors préparez une interface d'accès simple dans le projet springboot.
insérez la description de l'image ici

2. Préparation de l'environnement serveur

Installer JDK

1. Mettez à jour le package système :

sudo yum update

2. Installez OpenJDK 11 :

sudo yum install java-11-openjdk-devel

3. Vérifiez l'installation de Java :

java -version

insérez la description de l'image ici
4. Configurer les variables d'environnement

vim /etc/profile
#JAVA_HOME 的内容根据具体安装jdk的路径替换
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

5. Faire en sorte que la variable d'environnement prenne effet

source /etc/profile

Installer Maven

1. Vous pouvez télécharger la version 3.5.4 sur le site https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip (ou https:// maven .apache.org/download.cgi pour télécharger la version dont vous avez besoin), téléchargez-la dans le /usr/local/software/répertoire du serveur
2. Installez la commande unzip

yum install unzip -y

3. Décompressez

unzip apache-maven-3.5.4-bin.zip

modifier le nom

mv apache-maven-3.5.4 maven3.5

4. Configurer les variables d'environnement

vim /etc/profile
JAVA_HOME=/usr/lib/jvm/java-11-openjdk
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
MAVEN_HOME=/usr/local/software/maven3.5
PATH=$PATH:$MAVEN_HOME/bin
export PATH JAVA_HOME CLASSPATH MAVEN_HOME

5. Faire en sorte que la variable d'environnement prenne effet

source /etc/profile

3. Le projet springboot construit et empaquete docker

1. Définissez le nom du fichier de package sur demo et
définissez finalName dans le fichier pom du projet springboot

insérez la description de l'image ici
2. Ajoutez le fichier Dockerfile, le fichier est placé dans le projet et le répertoire sous
insérez la description de l'image ici
le fichier Dockerfile

FROM adoptopenjdk/openjdk11:jre11u-nightly

ADD target/demo.jar demo.jar

ENTRYPOINT ["java","-jar","/demo.jar"]

3. Téléchargez le projet springboot sur le serveur et entrez le répertoire racine pour l'empaquetage

Exécuter une commande

mvn clean install

Construisez l'image (n'ignorez pas le dernier point)

docker build -t demo:1.0 .

Afficher la liste des miroirs

docker images

Commencez

docker run -d -it -p 8080:8080 --name=k8sdemo demo:1.0

4. Push d'image (exemple Alibaba Cloud)

Adresse d'accès au compte Aliyun
https://cr.console.aliyun.com/
La création de l'entrepôt ne sera pas décrite ici, et Baidu (la version personnelle ne facture pas)

Poussez l'entrepôt privé de miroirs

#仓库地址根据自己的地址替换
docker login --username=gq570566 registry.cn-shenzhen.aliyuncs.com
#打tag
#docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]
docker tag ba0652a92214 registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0

#推送
#docker push registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0
#拉取
docker pull registry.cn-hangzhou.aliyuncs.com/fqfff/demo:[镜像版本号]

Projet SpringBoot de déploiement 5.K8s

créer un secret

#kubectl create secret docker-registry demo-docker-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=用户名 --docker-password=登录密码

kubectl create secret docker-registry demo-docker-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=gq570566--docker-password=*****

Créez le fichier yaml de k8sdemo-deployment

Comment générer rapidement des fichiers yaml

kubectl create deployment k8sdemo --image=registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0 --dry-run=client -o yaml > demo-k8s.yaml

Modifier le nombre de copies à 2, monter le secret

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: k8sdemo
  name: k8sdemo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: k8sdemo
  strategy: {
    
    }
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: k8sdemo
    spec:
      imagePullSecrets:
        - name: demo-docker-secret
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0
        name: demo-k8s
        resources: {
    
    }
status: {
    
    }

créer un contrôleur

kubectl apply -f demo-k8s.yaml

Créer un service, type nodePort

kubectl expose deploy k8sdemo --port=8080 --target-port=8080 --type=NodePort

tester l'accès

port de vue

kubectl get svc

insérez la description de l'image ici
IP du nœud d'accès + port + adresse d'interface
insérez la description de l'image ici

succès!

Je suppose que tu aimes

Origine blog.csdn.net/csdn570566705/article/details/131040836
conseillé
Classement