栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

K8S部署项目

K8S部署项目

目录
  • 利用k8s部署Java项目
  • k8s 部署jenkins

利用k8s部署Java项目
#创建工作目录
[root@master ~]# mkdir -p /opt/halo/files
[root@master ~]# cd /opt/halo/
[root@master halo]# touch Dockerfile
[root@master halo]# ls
Dockerfile  files

#制作镜像
FROM openjdk:18-jdk-alpine
  
COPY files/halo-1.4.0.jar /usr/local/halo.jar

ENTRYPOINT ["java","-jar","/usr/local/halo.jar"]

[root@master halo]# docker build -t neawalke/halo:v1 .
[root@master halo]# docker images |grep halo
neawalke/halo      v1        cdf9f5edf641   24 seconds ago   407MB


#将镜像推送至镜像仓库
[root@master halo]# docker login 
[root@master halo]# docker push neawalke/halo:v1 

#开始写k8s的资源清单
[root@master ~]# cd /opt/test
[root@master mainfest]# vi halo-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: halo
  labels:
    app: halo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: halo
  template:
    metadata:
      name: halo
      labels:
        app: halo
    spec:
      containers:
      - image: neawalke/halo:v1
        imagePullPolicy: IfNotPresent
        name: halo
---
apiVersion: v1
kind: Service
metadata:
  name: halo
spec:
  ports:
  - port: 8090
    targetPort: 8090
    nodePort: 30000
  selector:
    app: halo
  type: NodePort        

#使用这个资源清单创建控制器以及svc
[root@master mainfest]# kubectl apply -f halo-deploy.yaml 
deployment.apps/halo created
service/halo created

[root@master test]# kubectl get pods,svc
NAME                        READY   STATUS    RESTARTS   AGE
pod/halo-7d7497586f-8bn2s   1/1     Running   0          6s
pod/halo-7d7497586f-g9ld6   1/1     Running   0          6s

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/halo         NodePort    10.97.59.203             8090:30000/TCP   6s
service/haproxy      NodePort    10.106.214.171           80:32498/TCP     4d22h
service/kubernetes   ClusterIP   10.96.0.1                443/TCP          6d



网页访问




k8s 部署jenkins
#构建tomcat镜像
[root@master ~]# mkdir -p /java/files
[root@master ~]# touch dockerfile
[root@master ~]# ls /java/
dockerfile  files
[root@master ~]# ls /java/files/
apache-tomcat-9.0.35.tar.gz  index.jsp  install.sh  jenkins-2.319.war  jenkins-2.326.war

#编写一个tomcat的部署脚本
[root@master ~]# cat /java/files/install.sh 
#!/bin/bash

rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-base.repo https://mirrors.aliyun.com/repo/Centos-$(awk -F '"' 'NR==5{print $2}' /etc/os-release).repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-base.repo
yum install -y java-1.8.0-openjdk 
ln -s /usr/local/apache-tomcat-${version}/ /usr/local/tomcat 
cp /opt/jenkins-2.319.war /usr/local/tomcat/webapps/

#编写一个java测试文件
[root@master files]# pwd
/java/files

cat > index.jsp <

         test page


         <%
           out.println("Hello World");
         %>


EOF

#编写dockerfile
[root@master ~]# vi /java/dockerfile 
FROM centos

MAINTAINER JRE  "xxxx@dsa.com"

ENV version 9.0.35 
ENV PATH $PATH:/usr/local/tomcat/bin

ADD files/apache-tomcat-${version}.tar.gz /usr/local/

COPY files/jenkins-2.319.war /opt
COPY files/index.jsp /opt
COPY files/install.sh /tmp

RUN  /tmp/install.sh

WORKDIR /usr/local/tomcat/bin

EXPOSE 8080

CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] 

[root@master java]# docker build -t neawalke/tomcat:v2.0 .

#运行镜像然后进入镜像,将jenkins包放入ROOT目录进行解压
[root@master java]# docker run -dit --name test -p 8080:8080 neawalke/tomcat:v2.0
36d515ea8b5780d1d2cba39b72ef61710fe7b348083daac77bb6c9a8dfac38d3

[root@master java]# docker exec -it test /bin/bash
[root@36d515ea8b57 bin]# cd ../webapps/ROOT
[root@36d515ea8b57 ROOT]# ls
RELEASE-NOTES.txt  asf-logo-wide.svg  bg-middle.png  bg-upper.png  index.jsp         tomcat.css  tomcat.png

[root@36d515ea8b57 ROOT]# rm -rf *
[root@36d515ea8b57 ROOT]# cp ../jenkins-2.319.war .
[root@36d515ea8b57 ROOT]# ls
jenkins-2.319.war
[root@36d515ea8b57 ROOT]# yum -y install unzip
[root@36d515ea8b57 ROOT]# unzip jenkins-2.319.war 
[root@36d515ea8b57 ROOT]#  ls
bootstrap             containerd  favicon.ico  jenkins-2.319.war  LogFileOutputStream$1.class  MainDialog.class               robots.txt  winstone.jar
cni                   css         help         JNLPMain.class     LogFileOutputStream.class    Main$FileAndDescription.class  scripts
ColorFormatter.class  executable  images       jsbundles          Main.class                   meta-INF                       WEB-INF



选择 选择插件安装




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/680397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号