(十)服务器K8S集群部署SpringBoot项目实战
1.准备springboot项目
可以在 https://start.spring.io/网站准备一个项目,这里作为k8s的学习所以springboot项目中准备一个简单的访问接口即可。
2.服务器环境准备
安装Jdk
更新系统软件包:
sudo yum update
安装 OpenJDK 11:
sudo yum install java-11-openjdk-devel
验证 Java 安装:
java -version
4.配置环境变量
vim /etc/profile
#JAVA_HOME 的内容根据具体安装jdk的路径替换JAVA_HOME=/usr/lib/jvm/java-11-openjdkCLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLASSPATH
使环境变量生效
source /etc/profile
安装Maven
可以在 https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip 网站下载3.5.4版本(或者https://maven.apache.org/download.cgi 下载自己需要的版本),上传到服务器 /usr/local/software/
目录下
2.安装 unzip 命令
yum install unzip -y
解压
unzip apache-maven-3.5.4-bin.zip
修改名称
mv apache-maven-3.5.4 maven3.5
配置环境变量
vim /etc/profile
JAVA_HOME=/usr/lib/jvm/java-11-openjdkCLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binMAVEN_HOME=/usr/local/software/maven3.5PATH=$PATH:$MAVEN_HOME/binexport PATH JAVA_HOME CLASSPATH MAVEN_HOME
使环境变量生效
source /etc/profile
3.springboot项目构建和打包docker
将打包文件名设置成 demo
在springboot项目中的pom文件中设置finalName
2.添加Dockerfile文件,文件放在项目跟目录下
Dockerfile文件
FROM adoptopenjdk/openjdk11:jre11u-nightlyADD target/demo.jar demo.jarENTRYPOINT ["java","-jar","/demo.jar"]
上传springboot项目到服务器进入到根目录打包
执行命令
mvn clean install
构建镜像(不要忽略最后的一个点)
docker build -t demo:1.0 .
查看镜像列表
docker images
启动
docker run -d -it -p 8080:8080 --name=k8sdemo demo:1.0
4.镜像推送(阿里云举例)
阿里云账号访问地址
https://cr.console.aliyun.com/
仓库的创建这里不做赘述,自行百度(个人版不收费)
推送私有镜像仓
#仓库地址根据自己的地址替换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.K8s部署SpringBoot项目
创建secert
#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=*****
创建k8sdemo-deployment的yaml文件
快速生成yaml文件方式
kubectl create deployment k8sdemo --image=registry.cn-hangzhou.aliyuncs.com/fqfff/demo:1.0 --dry-run=client -o yaml > demo-k8s.yaml
修改副本数量为 2,挂载 secret
apiVersion: apps/v1kind: Deploymentmetadata: creationTimestamp: null labels: app: k8sdemo name: k8sdemospec: 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: {}
创建控制器
kubectl apply -f demo-k8s.yaml
创建service, nodePort类型
kubectl expose deploy k8sdemo --port=8080 --target-port=8080 --type=NodePort
测试访问
查看端口
kubectl get svc
访问 节点ip+端口+接口地址
成功!
来源地址:https://blog.csdn.net/csdn570566705/article/details/131040836
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341