(10) Combate real del proyecto SpringBoot del despliegue del clúster K8S del servidor

1. Preparar el proyecto springboot

Puede preparar un proyecto en el sitio web https://start.spring.io/ , aquí como k8s learning, así que prepare una interfaz de acceso simple en el proyecto springboot.
inserte la descripción de la imagen aquí

2. Preparación del entorno del servidor

Instalar jdk

1. Actualice el paquete del sistema:

sudo yum update

2. Instale OpenJDK 11:

sudo yum install java-11-openjdk-devel

3. Verifique la instalación de Java:

java -version

inserte la descripción de la imagen aquí
4. Configurar variables de entorno

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. Haz que la variable de entorno surta efecto

source /etc/profile

Instalar Maven

1. Puede descargar la versión 3.5.4 en el sitio web https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip (o https:// maven .apache.org/download.cgi para descargar la versión que necesita), cárguela en el /usr/local/software/directorio del servidor
2. Instale el comando descomprimir

yum install unzip -y

3. Descomprimir

unzip apache-maven-3.5.4-bin.zip

modificar nombre

mv apache-maven-3.5.4 maven3.5

4. Configurar variables de entorno

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. Haz que la variable de entorno surta efecto

source /etc/profile

3. El proyecto springboot compila y empaqueta la ventana acoplable

1. Establezca el nombre del archivo del paquete en demostración y
establezca finalName en el archivo pom en el proyecto springboot

inserte la descripción de la imagen aquí
2. Agregue el archivo Dockerfile, el archivo se coloca en el proyecto y directorio bajo
inserte la descripción de la imagen aquí
el archivo Dockerfile

FROM adoptopenjdk/openjdk11:jre11u-nightly

ADD target/demo.jar demo.jar

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

3. Cargue el proyecto springboot en el servidor e ingrese el directorio raíz para empaquetar

Ejecutar una orden

mvn clean install

Construye la imagen (no ignores el último punto)

docker build -t demo:1.0 .

Ver lista de espejos

docker images

puesta en marcha

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

4. Empuje de imagen (ejemplo de Alibaba Cloud)

Dirección de acceso a la cuenta de Aliyun
https://cr.console.aliyun.com/
La creación del almacén no se describirá aquí, y Baidu (la versión personal no cobra)

Push almacén espejo privado

#仓库地址根据自己的地址替换
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:[镜像版本号]

5. Proyecto SpringBoot de implementación de K8s

crear secreto

#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=*****

Cree el archivo yaml de k8sdemo-deployment

Cómo generar rápidamente archivos yaml

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

Modificar el número de copias a 2, montar el secreto

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: {
    
    }

crear controlador

kubectl apply -f demo-k8s.yaml

Crear servicio, tipo nodePort

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

prueba de acceso

ver puerto

kubectl get svc

inserte la descripción de la imagen aquí
Nodo de acceso ip+puerto+dirección de interfaz
inserte la descripción de la imagen aquí

¡éxito!

Supongo que te gusta

Origin blog.csdn.net/csdn570566705/article/details/131040836
Recomendado
Clasificación