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

apiVersion: v1
kind: Pod
metadata:
  name: k8s-tomcat
  labels:
    app: k8s
spec:
  containers:
    - name: k8s-tomcat
      image: jwobkaka/latest #这里就是用docker做的镜像
      command: [ "/usr/local/tomcat/bin/catalina.sh", "run"]
      ports:
        - containerPort: 8080
  volumes:
    - name: timezone
      hostPath:
        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文件,开启外部节点访问

apiVersion: v1
kind: Service
metadata:
  name: k8s-tomcat-svc
spec:
  selector:
    app: k8s
  type: NodePort
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
kubectl apply -f svc.yaml

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

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

三、发布自己的项目

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

apiVersion: v1
kind: Pod
metadata:
  name: k8s-tomcat
  labels:
    app: k8s
spec:
  containers:
    - name: k8s-tomcat
      image: jwobkaka/latest
      command: [ "/usr/local/tomcat/bin/catalina.sh", "run"]
      ports:
        - containerPort: 8080
      volumeMounts:
        - mountPath: /usr/local/tomcat/webapps/sam #tomcat的访问项目路径
          name: test-volume
  volumes:
    - name: timezone
      hostPath:
        path: /usr/share/zoneinfo/Asia/Shanghai
    - name: test-volume
      hostPath:
        path: /root/sam #自己的路径
        type: DirectoryOrCreate #文件夹不存在会两边自动创建

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

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

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

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

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

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

        就可以看到自己的首页了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值