• Docker+K3S搭建集群


         本次环境使用的是阿里云资源服务器,Linux版本为Centos,集群需要安装Docker和k3s。

    Docker下载:Docker(一) 安装Docker_CV猿码人的博客-CSDN博客

    K3S 下载:k3s在线快速安装部署-CSDN博客

     一、定制镜像

            制作Tomcat镜像,下载官方镜像,编辑Tomcat配置信息

    docker pull tomcat

            运行Tomcat镜像 

    docker run -itd tomcat /bin/bash

            需要将webapps.dist的配置文件放入到webapps文件夹中

            /conf/server.xml 存放Tomcat的配置信息

                保存自己的镜像 

    docker ps #获取容器id

            将容器保存为镜像 

    docker commit -m="has update" -a="自己的账号"  Tomcat容器ID tomcat/latest
    docker tag tomcat/latest 自己的dockerhub账号/latest

            将自己的镜像上传到DockerHub中,https://login.docker.com/ docker官方地址

            上传前需要登录账号 docker login

    docker push jwobkaka/latest

            在自己的docker首页就可以看到 

           

    二、在k3s使用自己镜像搭建容器

            用docker搜索上面自己制作的镜像存不存在

    docker  search jwobkaka/latest  #jwobkaka/latest是自己镜像的名称

            编写k3s创建容器的yaml文件 :tomcat-test.yaml

    1. apiVersion: v1
    2. kind: Pod
    3. metadata:
    4. name: k8s-tomcat
    5. labels:
    6. app: k8s
    7. spec:
    8. containers:
    9. - name: k8s-tomcat
    10. image: jwobkaka/latest #这里就是用docker做的镜像
    11. command: [ "/usr/local/tomcat/bin/catalina.sh", "run"]
    12. ports:
    13. - containerPort: 8080
    14. volumes:
    15. - name: timezone
    16. hostPath:
    17. path: /usr/share/zoneinfo/Asia/Shanghai

            编辑好以后,执行配置文件生成pod

    kubectl apply -f tomcat-test.yaml

            查看容器运行状态 

    kubectl describe pod k8s-tomcat

             Running即为运行成功

            进入容器中查看是不是自己的镜像所创建的,主要是webapps中有没有配置文件

    kubectl exec -it k8s-tomcat -- /bin/bash

             可以看到k3s使用我们自己的镜像搭建起了tomcat服务器

            退出容器,回到宿主机上添加svc.yaml文件,开启外部节点访问

    1. apiVersion: v1
    2. kind: Service
    3. metadata:
    4. name: k8s-tomcat-svc
    5. spec:
    6. selector:
    7. app: k8s
    8. type: NodePort
    9. ports:
    10. - protocol: TCP
    11. port: 8080
    12. targetPort: 8080
    kubectl apply -f svc.yaml

            可以看到端口映射到了宿主机3056上,如果需要外网可以访问到tomcat需要配置安全组

            配置好后访问自己的公网ip加映射的端口号

    三、发布自己的项目

            在tomcat.yaml文件中添加挂载信息

    1. apiVersion: v1
    2. kind: Pod
    3. metadata:
    4. name: k8s-tomcat
    5. labels:
    6. app: k8s
    7. spec:
    8. containers:
    9. - name: k8s-tomcat
    10. image: jwobkaka/latest
    11. command: [ "/usr/local/tomcat/bin/catalina.sh", "run"]
    12. ports:
    13. - containerPort: 8080
    14. volumeMounts:
    15. - mountPath: /usr/local/tomcat/webapps/sam #tomcat的访问项目路径
    16. name: test-volume
    17. volumes:
    18. - name: timezone
    19. hostPath:
    20. path: /usr/share/zoneinfo/Asia/Shanghai
    21. - name: test-volume
    22. hostPath:
    23. path: /root/sam #自己的路径
    24. type: DirectoryOrCreate #文件夹不存在会两边自动创建

            将之前的pod删除,重新创建tomcat的pod

    1. kubectl delete pod k8s-tomcat
    2. kubectl apply -f tomcat-test.yaml

            进入容器中发现文件夹被创建了

            在外面宿主机的文件夹中上传自己的文件

            里面pod也会出现上传的文件

            按照之前的端口访问加上sam/index.html

            就可以看到自己的首页了

  • 相关阅读:
    【车间调度】基于遗传算法求解车间调度问题(含甘特图)附matlab代码
    sed应用
    TCP/IP网络编程:P1->理解网络编程和套接字
    美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens
    C++学习 --vector
    数学建模遗传算法Matlab
    Django 请求与相应实例及解决表单返回403问题方法
    力扣每日一题-第59天-806. 写字符串需要的行数
    设计模式---抽象工厂模式
    【国科大卜算】Moving Tables
  • 原文地址:https://blog.csdn.net/weixin_51722520/article/details/133359861