微服务发布到k3s环境
作者:互联网
环 境
a、 springboot jar包 (请 求 返 回 实 时 时 间 )
b、 docker环 境
c、 k3s环 境
jar包 提 取 地 址: 链 接
1、 准 备 好 jar文 件
[root@urbancabin demo]# ll -h demo.jar
-rw-r--r-- 1 root root 28M Apr 22 2021 demo.jar
2、 构 建 环 境
alpine-glibc:v1 #java运 行 环 境 的 基 础 镜 像
jre8.tar.gz #java运 行 环 境 所 需 的 jre包
a、 构 建 轻 量 级 java运 行 需 要 的 基 础 环 境 (比 单 纯 拉 jdk官 方 镜 像 少 一 半 的 大 小 , 生 产 环 境 慎 用 , 需 要 考 虑 兼 容 性 )
首 先 需 要 制 作 java的 运 行 环 境
[alpine-glibc:v1镜 像 的 制 作 ]
cat Dockerfile
FROM alpine:latest
RUN apk add --no-cache bash && \
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.30-r0/glibc-2.30-r0.apk && \
apk add --no-cache glibc-2.30-r0.apk && \
rm -rf glibc-2.30-r0.apk
docker build -t alpine-glibc:v1 .
b、 jre8.tar.gz
下 载 地 址: https://www.java.com/en/download/manual.jsp
下 载: jre-8u333-linux-x64.tar.gz
解 压
tar -zxvf jre-8u333-linux-x64.tar.gz
cd jre1.8.0_333
删 除 无 用 文 件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt Welcome.html
rm -rf lib/plugin.jar \
lib/ext/jfxrt.jar \
bin/javaws \
lib/javaws.jar \
lib/desktop \
plugin \
lib/deploy* \
lib/*javafx* \
lib/*jfx* \
lib/amd64/libdecora_sse.so \
lib/amd64/libprism_*.so \
lib/amd64/libfxplugins.so \
lib/amd64/libglass.so \
lib/amd64/libgstreamer-lite.so \
lib/amd64/libjavafx*.so \
lib/amd64/libjfx*.so
重 新 打 包
tar -zcvf jre8.tar.gz *
3、 将 jar包 做 到 镜 像 文 件 里 面
[root@urbancabin demo]# ls
demo.jar Dockerfile jre1.8.0_333 jre8.tar.gz jre-8u333-linux-x64.tar.gz
[root@urbancabin demo]# cat Dockerfile
#FROM openjdk:8-jre #官 方 镜 像
FROM alpine-glibc:v1 #镜 像 需 要 单 独 制 作
ADD jre8.tar.gz /usr/java/jdk
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
WORKDIR /opt
ADD demo.jar app.jar
EXPOSE 1111
ENTRYPOINT ["java","-jar"]
CMD ["app.jar"]
docker build -t demo:v1 .
4、 验 证 镜 像 是 否 完 整 可 运 行
[root@urbancabin tmp]# docker run -it --rm demo:v1
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
2022-07-19 07:52:47.709 INFO 1 --- [ main] com.linkcircle.AcrpjApplication : Starting AcrpjApplication v2.1.0.RE
LEASE on 94970e2dbc81 with PID 1 (/app/app.jar started by root in /app)
2022-07-19 07:52:47.720 INFO 1 --- [ main] com.linkcircle.AcrpjApplication : No active profile set, falling back
to default profiles: default
2022-07-19 07:52:49.722 INFO 1 --- [ main] org.xnio : XNIO version 3.3.8.Final
2022-07-19 07:52:49.757 INFO 1 --- [ main] org.xnio.nio : XNIO NIO Implementation Version 3.3
.8.Final
2022-07-19 07:52:50.063 WARN 1 --- [ main] io.undertow.websockets.jsr : UT026009: XNIO worker was not set o
n WebSocketDeploymentInfo, the default worker will be used
2022-07-19 07:52:50.063 WARN 1 --- [ main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set o
n WebSocketDeploymentInfo, the default pool will be used
2022-07-19 07:52:50.089 INFO 1 --- [ main] io.undertow.servlet : Initializing Spring embedded WebApp
licationContext
2022-07-19 07:52:50.090 INFO 1 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initial
ization completed in 2261 ms
2022-07-19 07:52:50.116 INFO 1 --- [ main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to
[/]
2022-07-19 07:52:50.124 INFO 1 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingF
ilter' to: [/*]
2022-07-19 07:52:50.125 INFO 1 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFi
lter' to: [/*]
2022-07-19 07:52:50.125 INFO 1 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'formContentFilter'
to: [/*]
2022-07-19 07:52:50.125 INFO 1 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilt
er' to: [/*]
2022-07-19 07:52:50.414 INFO 1 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'appli
cationTaskExecutor'
2022-07-19 07:52:50.763 INFO 1 --- [ main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 1111 (h
ttp) with context path ''
2022-07-19 07:52:50.769 INFO 1 --- [ main] com.linkcircle.AcrpjApplication : Started AcrpjApplication in 3.644 s
econds (JVM running for 4.652)
5、 将 docker本 地 仓 库 镜 像 打 包 至 本 地
docker save demo:v1 > demo_v1.tar
6、 将 镜 像 上 传 至 k3s环 境 仓 库
k3s ctr i import demo_v1.tar
7、 构 建 demo.yaml
[root@urbancabin k3s]# cat demo.yaml
---
apiVersion: v1 #类 型 为 Namespace
kind: Namespace #类 型 为 Namespace
metadata:
name: demo #命 名 空 间 名 称
labels:
name: demo
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: demo
name: urbancabin-demo
namespace: demo
spec:
replicas: 3
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: urbancabin-demo-c
image: docker.io/library/demo:v3
imagePullPolicy: IfNotPresent
ports:
- containerPort: 1111
---
apiVersion: v1
kind: Service
metadata:
labels:
app: demo
name: urbancabin-demo-svc
namespace: demo
spec:
ports:
- port: 1111
name: urbancabin-demo-svc
protocol: TCP
targetPort: 1111
nodePort: 30111
selector:
app: demo
type: NodePort
8、 创 建 pod
kubectl apply -f demo.yaml
[root@urbancabin k3s]# kubectl get pod -n demo
NAME READY STATUS RESTARTS AGE
urbancabin-demo-7f49fc48dd-rplxc 1/1 Running 0 11m
urbancabin-demo-7f49fc48dd-8dd27 1/1 Running 0 11m
urbancabin-demo-7f49fc48dd-tzw65 1/1 Running 0 11m
9、 查 看 svc
[root@urbancabin k3s]# kubectl get svc -n demo
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
urbancabin-demo-svc NodePort 10.43.61.28 1111:30111/TCP 3h20m
10、 访 问
[root@urbancabin k3s]# curl localhost:30111
当 前 时 间 : 2022-07-19 07:58:08
标签:服务,07,k3s,19,demo,环境,---,2022,main 来源: https://www.cnblogs.com/urbancabin/p/16517033.html