Docker+K3S搭建集群

news2025/1/11 4:06:07

     本次环境使用的是阿里云资源服务器,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

        就可以看到自己的首页了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1053599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GeoServer扩展功能之发布矢量瓦片

目录 前言 一、矢量瓦片 VS 栅格瓦片 1、基本对比 2、适量瓦片处理步骤 二、GeoServer矢量瓦片插件配置 1、确定GeoServer版本 2、查找瓦片切片插件 3、下载 并安装插件 三、GeoServer发布矢量瓦片 1、矢量瓦片处理 2、如何进行数据预览 总结 前言 今天是10月1日国庆…

常用数学分布

正态分布(高斯分布) 若随机变数 X X X 服从一个期望 μ \mu μ,标准差 的正态分布 σ \sigma σ,则记为 X ≈ N ( μ , σ 2 ) X \approx N(\mu,\sigma^2) X≈N(μ,σ2),其密度函数为: f ( x ) 1 σ …

JAVA 获得特定格式时间

0 背景 我们有时要获取时间,年月日时分秒周几,有时要以特定的格式出现。这时就要借助 SimpleDateFormat 或者 DateTimeFormatter。有时要某个月份有多少天需要借助 Calendar。所以有必要了解一些知识。 1 SimpleDateFormat simpledateFormat 线程不安全…

侯捷 C++ STL标准库和泛型编程 —— 4 分配器 + 5 迭代器

4 分配器 4.1 测试 分配器都是与容器共同使用的&#xff0c;一般分配器参数用默认值即可 list<string, allocator<string>> c1;不建议直接用分配器分配空间&#xff0c;因为其需要在释放内存时也要指明大小 int* p; p allocator<int>().allocate(512,…

图像处理: ImageKit.NET 3.0.10704 Crack

关于 ImageKit.NET3 100% 原生 .NET 图像处理组件。 ImageKit.NET 可让您快速轻松地向 .NET 应用程序添加图像处理功能。从 TWAIN 扫描仪和数码相机检索图像&#xff1b;加载和保存多种格式的图像文件&#xff1b;对图像应用图像滤镜和变换&#xff1b;在显示屏、平移窗口或缩略…

【大家的项目】通用规则引擎——Rush(一)可以自定义的规则引擎,告别发版,快速配置...

前言 很长一段时间在搞过增长和促销的事情&#xff0c;在实现各种活动和玩法时非常心累。每个新的玩法&#xff0c;都需要填一点代码&#xff0c;每次改动都需要走流水线发一次版&#xff0c;烦躁且痛苦。 对于这种&#xff0c;输入不确定&#xff0c;过程不确定&#xff0c;结…

uni-app:官方文档中的canvas实例剖析

效果 代码 <template><view><!-- 创建了一个宽度为300像素&#xff0c;高度为200像素的canvas元素。canvas-id属性被设置为"firstCanvas"&#xff0c;可以用来在JavaScript中获取该canvas元素的上下文对象。 --><canvas style"width: 30…

【python海洋专题三】图像修饰之画布和坐标轴

【python海洋专题三】图像修饰之画布和坐标轴 海洋与大气科学 上期读取nc水深文件&#xff0c;并出图 但是存在一些不完美&#xff0c;本期修饰 本期内容目录 1&#xff1a;改变画布大小 2&#xff1a;改变画布背景色 3&#xff1a;改变画布在显示屏中的显示位置 4&#xf…

建筑能源管理(3)——建筑能源监管

为了全面落实科学发展观&#xff0c;提高建筑能源管理水平&#xff0c;进一步降低能源和水资源消耗、合理利用资源&#xff0c;以政府办公建筑和大型公共建筑的运行节能管理为突破口&#xff0c;建立了既有政府办公建筑和大型公共建筑运行节能监管体系&#xff0c;旨在提高政府…

[python 刷题] 刷题常用函数

[python 刷题] 刷题常用函数 最近直到未来一段时间之内应该都会用 python 刷题了&#xff0c;所以记一下碰到的还蛮好用的方法 按照分区实现&#xff0c;基本上刷一个类型的题&#xff0c;了解一些常用函数&#xff0c;就更新一下 这里假设你对编程语言有一定的了解&#xf…

Python海洋专题七之Cartopy画地形水深图的陆地填充

Python海洋专题七之Cartopy画地形水深图的陆地填充 第一期图 本期&#xff1a; 上期 Cartopy画地形水深图 但是陆地没有填充 如图 本期内容 陆地填充 如图&#xff1a; 详细过程如下 1&#xff1a;陆地填充 land feature.NaturalEarthFeature(‘physical’, ‘land’…

如何在Qt6中引入Network模块

2023年10月1日&#xff0c;周日凌晨 如果用的是CMake find_package(Qt6 COMPONENTS Network REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Network) 但在实际使用中&#xff0c;我发现有以下几点要注意&#xff1a; 1、要把“mytarget”换成项目名称 2、要去掉…

指针巩固习题

1.该程序输出的结果为 #include<stdio.h> int main() {int arr[]{1,2,3,4,5};short *p(short*)arr;//转化类型int i0;for(i0;i<4;i){*(pi)0;//short型指针1跳过两个字节}for(i0;i<5;i){printf("%d",arr[i]);}return 0;} 2.程序的输出结果为 #include&…

oracle-使用PLSQL工具自行修改用户密码

1、使用PLSQL工具&#xff0c;输入用户名和原密码登录&#xff0c;如下图 2、登录后&#xff0c;在会话下拉菜单中找到”Change password..” 3、在跳出的窗口中配置新密码&#xff0c;修改完成后单击”确认”&#xff0c;后退出PLSQL 4、重新打开PLSQL&#xff0c;使用新密码登…

1. windows安装elasticSearch

目录 1. 下载 2. 安装和启动 1. 下载 下载地址&#xff1a;https://elasticsearch.cn/download/ 下载7.8.0版本&#xff1a; 下载后的elasticsearch-7.8.0-windows-x86_64.zip文件放在本地合适的位置。 2. 安装和启动 解压elasticsearch-7.8.0-windows-x86_64.zip文件&…

蜂蜜配送销售商城小程序的作用是什么

蜂蜜是农产品中重要的一个类目&#xff0c;其受众之广市场需求量大&#xff0c;但由于非人人必需品&#xff0c;因此传统线下门店经营也面临着痛点&#xff0c;线上入驻平台也有很多限制难以打造自有品牌&#xff0c;无法管理销售商品及会员、营销等&#xff0c;缺少自营渠道&a…

DirectX12_Windows_GameDevelop_1:向量代数

引言 向量在计算机图形学、碰撞检测和物理模拟中扮演者关键的角色。因此在游戏开发之前我们必须先了解向量。本章研究向量的使用。 一、向量 如果你对数学中的向量不太熟悉&#xff0c;建议阅读《3D数学基础&#xff1a;图形和游戏开发 第2版》&#xff0c;如果你需要某些PD…

敏感性分析一览

敏感性分析 SobolMorrisFourier Amplitude Sensitivity Test (FAST)Random Balance Designs - Fourier Amplitude Sensitivity Test (RBD-FAST)Delta Moment-Independent MeasureDerivative-based Global Sensitivity Measure (DGSM)Fractional Factorial Sensitivity Analysis…

Flutter笔记:滚动之-无限滚动与动态加载的实现(GetX简单状态管理版)

Flutter笔记 无限滚动与动态加载的实现&#xff08;GeX简单状态管理版&#xff09; 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq…

Spring Framework 学习笔记5:事务

Spring Framework 学习笔记5&#xff1a;事务 1.快速入门 1.1.准备工作 这里提供一个示例项目 transaction-demo&#xff0c;这个项目包含 Spring 框架、MyBatis 以及 JUnit。 对应的表结构见 bank.sql。 服务层有一个方法可以用于在不同的账户间进行转账&#xff1a; Se…