其他分享
首页 > 其他分享> > 微服务发布到k3s环境

微服务发布到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