流程

项目迁移到k8s平台是怎么样的流程?
在这里插入图片描述

实战项目

可参考此文章

制作java镜像

[root@master ~]# git clone  https://gitee.com/hadeian/tomcat-java-demo-master.git
正克隆到 'tomcat-java-demo-master'...
remote: Enumerating objects: 182, done.
remote: Counting objects: 100% (182/182), done.
remote: Compressing objects: 100% (165/165), done.
remote: Total 182 (delta 6), reused 178 (delta 4), pack-reused 0
接收对象中: 100% (182/182), 1.12 MiB | 338.00 KiB/s, 完成.
处理 delta 中: 100% (6/6), 完成.
[root@master ~]# ls
anaconda-ks.cfg    tomcat-java-demo-master
[root@master ~]# mv tomcat-java-demo-master  tomcat-java-deamon

[root@master ~]# yum -y install java-1.8.0-openjdk maven
[root@master ~]# vim /etc/maven/settings.xml
#默认是官方源,换阿里云的源vim /etc/maven/settings.xml(159-164行)
 <mirror>
      <id>central</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
  </mirrors>

[root@master tomcat-java-deamon]# mvn clean install package '-Dmaven.test.skip=true'
......
[INFO] Processing war project
[INFO] Webapp assembled in [73 msecs]
[INFO] Building war: /root/test/tomcat-java-deamon/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS		#出现这个表示成功
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:43 min
[INFO] Finished at: 2021-12-28T11:59:08+08:00
[INFO] ------------------------------------------------------------------------
.......

[root@master tomcat-java-deamon]# ls
db  Dockerfile  LICENSE  pom.xml  README.md  src  target
[root@master tomcat-java-deamon]# mv target/*.war target/ROOT.war

[root@node2 test]# cat  Dockerfile
FROM centos 
LABEL maintainer haoran
ADD tomcat-java-deamon/target/ROOT.war /usr/local/apache-tomcat-9.0.54/webapps/ROOT.war
RUN yum -y install java-11-openjdk*
EXPOSE 8080
WORKDIR /usr/local/apache-tomcat-9.0.54
ENTRYPOINT /usr/local/apache-tomcat-9.0.54/bin/startup.sh && tail -f /usr/local/apache-tomcat-9.0.54/logs/catalina.out
CMD ["/usr/local/apache-tomcat-9.0.54/bin/catalina.sh","start"]


//构建镜像
[root@node2 test]# docker build -t 1314444/java-deamon:v1 .

将镜像推入docker hub仓库中

[root@master ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: 1314444
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

[root@master ~]# docker push 1314444/java-deamon:v1
The push refers to repository [docker.io/1314444/java-deamon]
cd69f6f5c474: Preparing 
e0d546489ea5: Preparing 
74ddd0ec08fa: Preparing 
denied: requested access to the resource is denied

创建Deployment,Service的yaml文件

[root@master test]# cat java.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: java-deamon
  name: java
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: java-deamon
  template:
    metadata:
      labels:
        app: java-deamon
    spec:
      containers:
      - image: 1314444/java-deamon:v1
        name: java
        imagePullPolicy: IfNotPresent

---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: java-deamon
  name: java
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    nodePort: 30000
    targetPort: 8080
  selector:
    app: java-deamon
  type: NodePort


[root@master test]# kubectl apply -f java.yaml 
deployment.apps/java created
service/java created

[root@master test]# kubectl get pod,svc
NAME                        READY   STATUS    RESTARTS   AGE
pod/java-595bf5b979-hw2mw   1/1     Running   0          19s
pod/java-595bf5b979-mcdpq   1/1     Running   0          19s

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/java         NodePort    10.108.60.223   <none>        80:30000/TCP   19s
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        9d

[root@master test]# curl 10.108.60.223
<!DOCTYPE html>
<html>
<head lang="en">
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>把美女带回家应用案例</title>
        <meta name="description" content="把美女带回家应用案例">
        <meta name="keywords" content="index">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, 
        ......

浏览器访问

http://nodeip:nodeport    #nodeip值得是任意k8s节点的ip;nodeport值得是k8s分配给svc的随机端口号

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐