kubernetes中 demo: tomcat + mysql

k8s实现tomcat+mysql容器之间相互访问(九) tomcat+mysql容器之间相互访问 在企业很多环境中,通常是容器之间相互配合访问的 在k8s中可以通过vip来实现容器之间的相互访问 先准备数据库的yaml文件,在准备应用的yaml文件,应用连接数据库时使用clusterip的方式去连接 环境用到的配置文件 [root@k8s-master tomcat]# tree . . ├── docker-mysql-5.7.tar.gz ├── mysql-rc.yml ├── mysql-svc.yml ├── tomcat-app-v2.tar.gz 阅读详情

 

目录(?)[+]

背景

相信大家应该都在自己的电脑中部署过tomcat与mysql集群,我们可以通过访问tomcat来访问后台数据库。kubernetes是一个可自动部署、扩缩、管理容器化应用的工具。本篇博客主要讲解如何在kubernetes中部署tomcat与mysql集群。当然,这涉及到kubernetes的自动化部署功能。至于扩缩、管理功能,我这里就不详述了,以后有机会再讲解。

基础

在kubernetes中部署tomcat与mysql集群之前必须要有以下这些基础: 
1. 已安装、配置kubernetes 
2. 集群中有tomcat与mysql容器镜像 
3. 有docker基础

具体步骤

部署tomcat

创建tomcat RC对象

我们想要在kubernetes集群中配置tomcat服务器,首先要保证集群中的节点上有tomcat镜像,镜像可以从docker Hub中拉取,也可以放在自己的私有仓库中。这在我之前的博客中讲过,这里就不详述了。

要部署tomcat服务,我们需要做两件事,一是创建RC(Replication Controller),二是创建Service。RC是kubernetes中的副本控制器,也就是说,RC负责自动部署容器化应用。Service是我们访问tomcat服务的入口地址,我们是通过Service来对该服务就行访问的。

创建RC与Service对象,我这里用的是创建yaml文件的方式。yaml文件中的内容是声明式的。这些声明让kubernetes做你想要它做的事情。声明与命令有所不同,声明是告诉它你的需要是什么,而不涉及具体的实现的步骤,而命令,如linux中的ls,你是告诉它去做什么。声明与命令是不同的,请自己体会。话不多说了,上代码:

  1 apiVersion: v1
  2 kind: ReplicationController
  3 metadata:
  4   name: myweb
  5 spec:
  6   replicas: 5
  7   selector:
  8     app: myweb
  9   template:
 10     metadata:
 11       labels:
 12         app: myweb
 13     spec:
 14       containers:
 15       - image: kubeguide/tomcat-app:v1
 16         name: myweb
 17         resources:
 18           limits:
 19             cpu: "2"
 20             memory: 4Gi
 21         ports:
 22         - containerPort: 8080
 23         env:
 24         - name: MYSQL_SERVICE_HOST
 25           value: 'mysql'
 26         - name: MYSQL_SERVICE_PORT
 27           value: '3306'

如上所示就是我写的yaml文件,此文件名为myweb-rc1.yaml 
这里我简单的说明一下此yaml文件声明了什么:

  1 apiVersion: v1      //描述RC对象的版本是v1
  2 kind: ReplicationController    //我现在在声明RC对象
  3 metadata:     //metadata中的是对此RC对象描述信息
  4   name: myweb      //此RC对象在default命名空间中名为myweb,同一个命名空间中的命名一定是不同的
  5 spec:     //spec中是对RC对象的具体描述
  6   replicas: 5    //我要创建5个副本,单位当然是pod
  7   selector:      //选择器,用来选择对象的
  8     app: myweb    //我选择了标签为app: myweb的pod
  9   template:     //模版,以下用来描述创建的pod的模版
 10     metadata:   //对pod模版描述的元数据
 11       labels:      //给以下的东西打上标签,以让selector来选择
 12         app: myweb   //给pod模版打上app: myweb这样的标签
 13     spec:             //对pod模版的具体描述
 14       containers:         //以下就是要放入pod模版中的容器了
 15       - image: kubeguide/tomcat-app:v1    //选择镜像
 16         name: myweb         //容器名
 17         resources:           //给该容器分配的资源大小
 18           limits:
 19             cpu: "2"
 20             memory: 4Gi
 21         ports:         //容器端口号
 22         - containerPort: 8080         
 23         env:          //给该容器设置环境变量,这里就可以将mysql与我们的tomcat连接
 24         - name: MYSQL_SERVICE_HOST
 25           value: 'mysql'
 26         - name: MYSQL_SERVICE_PORT
 27           value: '3306'

大家可能看完比较蒙,仔细研究就发现其实yaml文件的规范还是比较严谨的。它是通过缩进与对齐的方式来表达了具体的信息的。比如一个metadata,在我这个yaml文件中就有两个。实际上通过缩进与对齐,我们就可以了解到,第一个metadata是对这个RC对象进行描述的元数据,而第二个metadata因为缩进了,实际上它是对pod模版进行描述的元数据。当然是不一样的。spec也有两个,同样的道理,大家可以自行分析。

创建tomcat RC对象的结果

如下,我截了个屏: 
这里写图片描述 
可以看到,我在创建完了tomcat的RC对象之后,它就立马自动部署了5个pod,这5个pod已经健康的跑起来了。为什么是创建5个pod?因为我在yaml文件中声明了我需要5个副本。是不是很方便?

创建tomcat Service对象

单单创建了RC对象还不行,虽然RC对象为我们自动部署了5个pod,但是我们还需要一个Service对象来作为入口地址来对创建好的tomcat进行访问,所以,接下来我们的任务就是创建Service对象。 
此文件名为myweb-svc1.yaml。还是直接上代码:

  1 apiVersion: v1
  2 kind: Service
  3 metadata:
  4   name: myweb
  5 spec:
  6   ports:
  7   - name: myweb-svc
  8     port: 8080
  9     targetPort: 8080
 10     nodePort: 31111
 11   selector:
 12     app: myweb
 13   type: NodePort

关于yaml文件声明的含义我已经解释过了。这里不再重复解释。只挑不同的地方强调一下:

  1 apiVersion: v1
  2 kind: Service   //对象是Service了哦
  3 metadata:
  4   name: myweb
  5 spec:  
  6   ports:
  7   - name: myweb-svc         //端口名称,Service是必须指定端口名称的
  8     port: 8080          //Service的端口号
  9     targetPort: 8080        //容器暴露的端口号
 10     nodePort: 31111       //node的真实端口号
 11   selector:
 12     app: myweb     //Service选择了标签为app: myweb的pod
 13   type: NodePort

重点在于三个端口的区别,容器有端口,Service有端口,node也有真实的端口号,这里我们将这三者关联起来,在一会访问的时候会看出门道。所以,我们就拿结果说话吧。

创建tomcat Service对象的结果

这里写图片描述 
大家可以看到,我已经创建好了名为myweb的Service。而且这个Service也已经通过selector选择了刚才创建好的5个pod。所以我可以通过Service来访问tomcat的服务了。我这里使用命令行来演示。

访问服务的方式

我们可以通过两种方式来访问已经创建好的服务。

1. 集群内部访问服务

我们可以通过Service IP + Service端口号的方式来从集群内部访问已经创建好的服务,所以,我们来看看tomcat Service的IP与端口号。 
这里写图片描述 
好了,现在可以进行访问了。 
这里写图片描述 
可以看到该服务已经通了,已经可以访问了,具体访问的是哪个pod中的tomcat,这是要根据具体情况进行负载均衡的。

2. 集群外部访问服务

从集群的外部我们可以通过node IP + node端口号的方式来对服务进行访问。pod实际上已经分在了不同的node中了,我们只用找到其中一个pod所在的node就行了。 
这里写图片描述 
可以看到我这个pod所在的IP地址。刚才已经看到了,在yaml文件中我将物理端口设为31111。好的,接下来就可以从外部对服务进行访问了。 
这里写图片描述 
可以看到,此时也可以访问服务。

部署mysql

如果你能将tomcat部署成功了,那么部署mysql就没有什么好讲的了。照前面做就行了。

创建mysql RC对象

我将此RC对象命名为mysql-rc1.yaml 
直接上代码:

  1 apiVersion: v1
  2 kind: ReplicationController
  3 metadata:
  4   name: mysql
  5 spec:
  6   replicas: 1
  7   selector:
  8     app: mysql
  9   template:
 10     metadata:
 11       labels:
 12         app: mysql
 13     spec:
 14         containers:
 15         - image: img.reg.3g:15000/mysql:5.7.13
 16           name: mysql
 17           resources:
 18             limits:
 19               cpu: "2"
 20               memory: 4Gi
 21           ports:
 22           - containerPort: 3306
 23           env:
 24           - name: MYSQL_ROOT_PASSWORD
 25             value: "123456"

不同之处在于创建mysql的RC对象yaml文件时,注入了一个name为MYSQL_ROOT_PASSWORD的环境变量,这个是给mysql数据库设置密码,这个环境变量的注入是必须的,如果没有此环境变量,虽然RC可以被创建成功,但是系统是无法启动mysql容器的。不信可以试试。算了,还是给你演示一下吧。

创建mysql RC对象的结果

我把环境变量删了之后运行的结果如下: 
这里写图片描述 
可以看到,删掉环境变量的mysql RC虽然可以创建成功,但是容器启动失败了。 
增加环境变量之后的结果 
这里写图片描述 
增加环境变量之后就可以启动起来容器了

创建mysql Service对象

同样道理,mysql也需要一个访问入口地址。创建的Service yaml文件名为mysql-svc1.yaml 
还是直接上代码

  1 apiVersion: v1
  2 kind: Service
  3 metadata:
  4   name: mysql
  5 spec:
  6   ports:
  7   - name: mysql-svc
  8     port: 3306
  9     targetPort: 3306
 10     nodePort: 31101
 11   selector:
 12     app: mysql
 13   type: NodePort

没什么好解释的。

创建mysql Service对象的结果

这里写图片描述 
可以看到,mysql Service对象也已经启动成功了。

由于前面已经详细介绍过如何访问服务了,这里我就不再赘述了。大家可以自己访问mysql的服务看看。

需要注意的细节

我认为,在kubernetes中部署应用集群的时候有两点特别需要注意的,当然,是我会犯错的地方,与大家分享: 
1. yaml文件的格式问题 
我初次编写yaml文件可是花了不少时间,就是因为格式的问题,总是创建不了RC或者Servcice。尤其是需要注意,缩进要用空格缩进而不能用TAB键缩进。否则是成功不了的。 
2. 理解pod、Service、node IP以及端口的关系 
这里的概念可能会比较难以理解,但一定要搞清楚,这是访问时的重点

总结

在kubernetes中部署容器,不仅可以用yaml,也可以用Json。还有,现在有许多容器化应用都是通过deployment部署的。当然,如果用RC部署也是可以的。我是第一次在kubernetes中部署容器化应用集群,所以就从简单的入手。希望本篇博客能够帮助到有些也刚刚接触kubernetes的同学。

目录(?)[+]

背景

相信大家应该都在自己的电脑中部署过tomcat与mysql集群,我们可以通过访问tomcat来访问后台数据库。kubernetes是一个可自动部署、扩缩、管理容器化应用的工具。本篇博客主要讲解如何在kubernetes中部署tomcat与mysql集群。当然,这涉及到kubernetes的自动化部署功能。至于扩缩、管理功能,我这里就不详述了,以后有机会再讲解。

基础

在kubernetes中部署tomcat与mysql集群之前必须要有以下这些基础: 
1. 已安装、配置kubernetes 
2. 集群中有tomcat与mysql容器镜像 
3. 有docker基础

具体步骤

部署tomcat

创建tomcat RC对象

我们想要在kubernetes集群中配置tomcat服务器,首先要保证集群中的节点上有tomcat镜像,镜像可以从docker Hub中拉取,也可以放在自己的私有仓库中。这在我之前的博客中讲过,这里就不详述了。

要部署tomcat服务,我们需要做两件事,一是创建RC(Replication Controller),二是创建Service。RC是kubernetes中的副本控制器,也就是说,RC负责自动部署容器化应用。Service是我们访问tomcat服务的入口地址,我们是通过Service来对该服务就行访问的。

创建RC与Service对象,我这里用的是创建yaml文件的方式。yaml文件中的内容是声明式的。这些声明让kubernetes做你想要它做的事情。声明与命令有所不同,声明是告诉它你的需要是什么,而不涉及具体的实现的步骤,而命令,如linux中的ls,你是告诉它去做什么。声明与命令是不同的,请自己体会。话不多说了,上代码:

  1 apiVersion: v1
  2 kind: ReplicationController
  3 metadata:
  4   name: myweb
  5 spec:
  6   replicas: 5
  7   selector:
  8     app: myweb
  9   template:
 10     metadata:
 11       labels:
 12         app: myweb
 13     spec:
 14       containers:
 15       - image: kubeguide/tomcat-app:v1
 16         name: myweb
 17         resources:
 18           limits:
 19             cpu: "2"
 20             memory: 4Gi
 21         ports:
 22         - containerPort: 8080
 23         env:
 24         - name: MYSQL_SERVICE_HOST
 25           value: 'mysql'
 26         - name: MYSQL_SERVICE_PORT
 27           value: '3306'

 

如上所示就是我写的yaml文件,此文件名为myweb-rc1.yaml 
这里我简单的说明一下此yaml文件声明了什么:

  1 apiVersion: v1      //描述RC对象的版本是v1
  2 kind: ReplicationController    //我现在在声明RC对象
  3 metadata:     //metadata中的是对此RC对象描述信息
  4   name: myweb      //此RC对象在default命名空间中名为myweb,同一个命名空间中的命名一定是不同的
  5 spec:     //spec中是对RC对象的具体描述
  6   replicas: 5    //我要创建5个副本,单位当然是pod
  7   selector:      //选择器,用来选择对象的
  8     app: myweb    //我选择了标签为app: myweb的pod
  9   template:     //模版,以下用来描述创建的pod的模版
 10     metadata:   //对pod模版描述的元数据
 11       labels:      //给以下的东西打上标签,以让selector来选择
 12         app: myweb   //给pod模版打上app: myweb这样的标签
 13     spec:             //对pod模版的具体描述
 14       containers:         //以下就是要放入pod模版中的容器了
 15       - image: kubeguide/tomcat-app:v1    //选择镜像
 16         name: myweb         //容器名
 17         resources:           //给该容器分配的资源大小
 18           limits:
 19             cpu: "2"
 20             memory: 4Gi
 21         ports:         //容器端口号
 22         - containerPort: 8080         
 23         env:          //给该容器设置环境变量,这里就可以将mysql与我们的tomcat连接
 24         - name: MYSQL_SERVICE_HOST
 25           value: 'mysql'
 26         - name: MYSQL_SERVICE_PORT
 27           value: '3306'

大家可能看完比较蒙,仔细研究就发现其实yaml文件的规范还是比较严谨的。它是通过缩进与对齐的方式来表达了具体的信息的。比如一个metadata,在我这个yaml文件中就有两个。实际上通过缩进与对齐,我们就可以了解到,第一个metadata是对这个RC对象进行描述的元数据,而第二个metadata因为缩进了,实际上它是对pod模版进行描述的元数据。当然是不一样的。spec也有两个,同样的道理,大家可以自行分析。

创建tomcat RC对象的结果

如下,我截了个屏: 
这里写图片描述 
可以看到,我在创建完了tomcat的RC对象之后,它就立马自动部署了5个pod,这5个pod已经健康的跑起来了。为什么是创建5个pod?因为我在yaml文件中声明了我需要5个副本。是不是很方便?

创建tomcat Service对象

单单创建了RC对象还不行,虽然RC对象为我们自动部署了5个pod,但是我们还需要一个Service对象来作为入口地址来对创建好的tomcat进行访问,所以,接下来我们的任务就是创建Service对象。 
此文件名为myweb-svc1.yaml。还是直接上代码:

  1 apiVersion: v1
  2 kind: Service
  3 metadata:
  4   name: myweb
  5 spec:
  6   ports:
  7   - name: myweb-svc
  8     port: 8080
  9     targetPort: 8080
 10     nodePort: 31111
 11   selector:
 12     app: myweb
 13   type: NodePort

关于yaml文件声明的含义我已经解释过了。这里不再重复解释。只挑不同的地方强调一下:

  1 apiVersion: v1
  2 kind: Service   //对象是Service了哦
  3 metadata:
  4   name: myweb
  5 spec:  
  6   ports:
  7   - name: myweb-svc         //端口名称,Service是必须指定端口名称的
  8     port: 8080          //Service的端口号
  9     targetPort: 8080        //容器暴露的端口号
 10     nodePort: 31111       //node的真实端口号
 11   selector:
 12     app: myweb     //Service选择了标签为app: myweb的pod
 13   type: NodePort

重点在于三个端口的区别,容器有端口,Service有端口,node也有真实的端口号,这里我们将这三者关联起来,在一会访问的时候会看出门道。所以,我们就拿结果说话吧。

创建tomcat Service对象的结果

这里写图片描述 
大家可以看到,我已经创建好了名为myweb的Service。而且这个Service也已经通过selector选择了刚才创建好的5个pod。所以我可以通过Service来访问tomcat的服务了。我这里使用命令行来演示。

访问服务的方式

我们可以通过两种方式来访问已经创建好的服务。

1. 集群内部访问服务

我们可以通过Service IP + Service端口号的方式来从集群内部访问已经创建好的服务,所以,我们来看看tomcat Service的IP与端口号。 
这里写图片描述 
好了,现在可以进行访问了。 
这里写图片描述 
可以看到该服务已经通了,已经可以访问了,具体访问的是哪个pod中的tomcat,这是要根据具体情况进行负载均衡的。

2. 集群外部访问服务

从集群的外部我们可以通过node IP + node端口号的方式来对服务进行访问。pod实际上已经分在了不同的node中了,我们只用找到其中一个pod所在的node就行了。 
这里写图片描述 
可以看到我这个pod所在的IP地址。刚才已经看到了,在yaml文件中我将物理端口设为31111。好的,接下来就可以从外部对服务进行访问了。 
这里写图片描述 
可以看到,此时也可以访问服务。

部署mysql

如果你能将tomcat部署成功了,那么部署mysql就没有什么好讲的了。照前面做就行了。

创建mysql RC对象

我将此RC对象命名为mysql-rc1.yaml 
直接上代码:

  1 apiVersion: v1
  2 kind: ReplicationController
  3 metadata:
  4   name: mysql
  5 spec:
  6   replicas: 1
  7   selector:
  8     app: mysql
  9   template:
 10     metadata:
 11       labels:
 12         app: mysql
 13     spec:
 14         containers:
 15         - image: img.reg.3g:15000/mysql:5.7.13
 16           name: mysql
 17           resources:
 18             limits:
 19               cpu: "2"
 20               memory: 4Gi
 21           ports:
 22           - containerPort: 3306
 23           env:
 24           - name: MYSQL_ROOT_PASSWORD
 25             value: "123456"

不同之处在于创建mysql的RC对象yaml文件时,注入了一个name为MYSQL_ROOT_PASSWORD的环境变量,这个是给mysql数据库设置密码,这个环境变量的注入是必须的,如果没有此环境变量,虽然RC可以被创建成功,但是系统是无法启动mysql容器的。不信可以试试。算了,还是给你演示一下吧。

创建mysql RC对象的结果

我把环境变量删了之后运行的结果如下: 
这里写图片描述 
可以看到,删掉环境变量的mysql RC虽然可以创建成功,但是容器启动失败了。 
增加环境变量之后的结果 
这里写图片描述 
增加环境变量之后就可以启动起来容器了

创建mysql Service对象

同样道理,mysql也需要一个访问入口地址。创建的Service yaml文件名为mysql-svc1.yaml 
还是直接上代码

  1 apiVersion: v1
  2 kind: Service
  3 metadata:
  4   name: mysql
  5 spec:
  6   ports:
  7   - name: mysql-svc
  8     port: 3306
  9     targetPort: 3306
 10     nodePort: 31101
 11   selector:
 12     app: mysql
 13   type: NodePort

没什么好解释的。

创建mysql Service对象的结果

这里写图片描述 
可以看到,mysql Service对象也已经启动成功了。

由于前面已经详细介绍过如何访问服务了,这里我就不再赘述了。大家可以自己访问mysql的服务看看。

需要注意的细节

我认为,在kubernetes中部署应用集群的时候有两点特别需要注意的,当然,是我会犯错的地方,与大家分享: 
1. yaml文件的格式问题 
我初次编写yaml文件可是花了不少时间,就是因为格式的问题,总是创建不了RC或者Servcice。尤其是需要注意,缩进要用空格缩进而不能用TAB键缩进。否则是成功不了的。 
2. 理解pod、Service、node IP以及端口的关系 
这里的概念可能会比较难以理解,但一定要搞清楚,这是访问时的重点

总结

在kubernetes中部署容器,不仅可以用yaml,也可以用Json。还有,现在有许多容器化应用都是通过deployment部署的。当然,如果用RC部署也是可以的。我是第一次在kubernetes中部署容器化应用集群,所以就从简单的入手。希望本篇博客能够帮助到有些也刚刚接触kubernetes的同学。

【云原生之kubernetes实战】在k8s集群环境下部署Tomcat应用 阅读详情

相关推荐

Python+whisper/vosk实现语音识别

Whisper 是一个由 OpenAI 开发的人工智能语音识别模型,它能够将语音转换为文本。Whisper 模型特别之处在于它的设计目标是能够理解和转录多种语言的语音,包括但不限于英语。Whisper 模型在训练时使用了大量不同语言的语音数据,这使得它具有很好的跨语言能力。Vosk 是一个开源的语音识别库,它可以在离线环境下工作,不依赖于任何外部服务。Vosk 基于Kaldi语音识别框架,支持多种语言,包括中文。Vosk提供了多种预训练模型,可以根据需求选择适合的模型进行语音识别。

weixin_44458771的博客 5937

Kubernetes简单集群搭建DEMO

【VM】Ubuntu 18.04环境下搭建Kubernetes集群(一主两从) 服务器名称和IP地址设置 类型 主机名称 IP地址 主节点 kubernetes-master 192.168.1.3 从节点1 kubernetes-slave1 192.168.1.4 从节点2 kubernetes-slave2 192.168.1.5 首先在三个服务器上安装Docke...

kakeu的博客 424

Cisco Packet Tracer 7.3免登录技巧:3种方法快速跳过注册界面(附详细截图)

本文针对Cisco Packet Tracer 7.3启动时遇到的登录界面问题,提供了三种合法高效的解决方案。详细介绍了如何利用官方访客模式快速启动、注册思科账号实现一劳永逸登录,以及通过调整本地安装配置优化启动流程,帮助网络学习者与备考者绕过繁琐步骤,快速进入实验环境。

weixin_29305337的博客 738

kubernetes部署并映射tomcat8(k8s)

文章目录2种创建部署的方式一、查找镜像二、部署tomcat(2种)1.1、命令行方式创建部署1.1.1、遇到这种请检查网络和docker1.1.2、模拟宕机tomcat效果,关闭node21.2.3 、暴漏tomcat访问1.2、yaml方式创建部署1.2.1、删除命令行创建的1.2.2、查看部署tomcat的yaml内容1.2.3、生成yaml文件1.2.4、部署,应用文件1.2.5、暴露(映射)端口出来1.2.5.1、查看yaml内容1.2.5.2、信息合并到tomcat8.deployment.yam

suqinyi的博客 3846

手把手教你用XC7A35T FPGA搭建低成本机器视觉系统(含开发板选型指南)

本文详细介绍了如何利用AMD(原Xilinx)Artix-7系列中的XC7A35T FPGA芯片,搭建一套低成本的机器视觉系统。内容涵盖从芯片选型深度剖析、开发板(如黑金AX7035B)对比指南,到使用Vivado创建工程、编写图像处理模块(如RGB转灰度),以及资源优化和与上位机(如OpenCV)协同工作的完整流程,旨在为开发者提供一套可实践的高性价比硬件加速视觉解决方案。

beta5的博客 351

使用pytorch构建LSTM_AE模型的两种方式

2.基本LSTM_Unit计算——基本LSTM_AE结构 3.自定义LSTM_Unit计算——自定义LSTM_AE结构 1.LSTM-Encoder-Decoder模型结构及简要解析 图基本lstm计算单元

qq_37840762的博客 7273

k8s简单的来部署一下tomcat,并测试自愈功能

#k8s #容器 k8s部署tomcat并实现自愈功能

weixin_43839635的博客 1499

实战测评:4大搜索API(You.com/Tavily/Exa/Perplexity)谁更适合你的AI项目?附Python调用代码

本文实战测评了You.com、Tavily、Exa和Perplexity四大搜索API在AI项目中的集成应用,详细对比了它们的技术特性和Python调用方法。针对LLM实时数据需求,You.com的优化设计表现突出,支持32k大上下文窗口和快速响应。文章提供了完整的代码示例和场景化选型建议,帮助开发者高效集成搜索API到AI项目中。

weixin_42569329的博客 478

K8S demo

转自:https://blog.youkuaiyun.com/hahaxu/article/details/79772296 kubernetes 从一个简单例子开始 参考 《kubernetes 权威指南》一节的 从一个简单例子开始,操作实录。 一、描述 创建一个简单的Java web程序,此 Java Web 应用 的 结构 比较 简单, 是一 个 运行 在 Tomcat 里 的 Web App,...

justsomebody126的专栏 340

借助AI高效写出结构严谨、内容专业的课题申报书:10大核心模块拆解(附实用提示词)

在很多老师和科研人员眼中,写一份高质量的课题申报,确实是一件非常困难的事。难就难在不只是要说清楚写了什么研究内容,还要体现申报书的可行性和创新性。七哥除了自己写课题,也经常指导会员同仁使用高级学术版搞定课题的申报工作,摸索出了一套行之有效的借助AI申报课题的技巧,在这篇文章中,我将给大家点明课题申报书的10大核心模块的写作技巧,还会给大家一些提示词模板供大家参考,如果你也正准备申报课题,那么这篇文章一定不要错过!特别说明的是,提示词的使用并不是一蹴而就的,是专业思考的延伸和AI化专业表达,过程中需要多次的调

智能AI让学术科研更容易 441

CAPL诊断功能实现

UDS(Unified Diagnostic Services)是一种用于汽车电子系统诊断的标准协议。它定义了一系列诊断服务,用于读取和写入车辆电子控制单元(ECU)中的数据,以及处理诊断故障码(DTC)。UDS协议通常运行在CAN总线上,使用ISO 15765-2(ISO-TP)协议进行数据传输。通过本文的学习,读者应该对CAPL诊断功能实现有了初步的了解,并能够编写复杂的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1516

spring-cloud-kubernetes官方demo运行实战

关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用运行在kubernetes环境,并且提供了通用的接口来调用kubernetes服务,GitHub上官方地址是:https://github.com/spring-cloud/spring-cloud-...

记事本 816

改进后的yolov8导出进行部署到rk3588上时,导出为onnx格式报错aten::fft_fft2算子不支持导出...如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1795

Kubernetes部署java web demo(tomcat+mysql)

参考《Kubernetes 权威指南(第二版)》第一章中的例子,部署一个 Java 应用,访问 MySql 数据库。 原书中的代码有一些坑,记录一下。 过程中遇到的bug主要是mysql连接错误。 Error:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last...

一叶舟遥 1217

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Kubernetes单机创建MySQL+Tomcat演示程序:《Kubernetes权威指南》第一章demo报错踩坑

引言 最近做边缘计算项目,因为没有基础,所以首先学习Kubernetes。感觉系统的中文入门资料比较少,只找到《Kubernetes权威指南》(龚正、吴治辉等著,下称《指南》),照着第一章的demo教程编写,前前后后遇到不少问题(笔者可是连MySQL都没有学过啊!),也是找了好多资料才解决。所以从头写一下如何配置一个单机版MySQL+Tomcat的demo,希望能给陷入同样困境的同学一点帮助。 文章较长,如果你已经按照《指南》的demo走了一遍,但是遇到了问题,可以直接看最后的“坑点总结”中的解决方案能否解

Dr_Myst的博客 2518

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Kubernetes 部署tomcat+mysql

仪表盘出来之后 部署tomcat+mysql 1.在master先创建个目录 编辑mysql tomcat文件 [root@k8s-master ~]# mkdir web [root@k8s-master ~]# cd web [root@k8s-master web]# vim mysql-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: mysql spec: replicas: 1 selector:

Q274948451的博客 517

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

生产中k8s适合mysql_k8s中部署 Tomcat+MySQL服务

示例:实现 运行在 Tomcat里的 Web app,JSP页面通过 JDBC 直接访问 MySQL数据库并展示数据。需求:Web App 容器 MySQL容器,web--->mysql需要把MySQL容器的IP地址通过环境变量的方式注入 Web App容器里,同时,需要将Web App容器的 8080端口映射宿主机的 8080端口,以便在外部访问。1.YAML编写1.MySQL服务创建一个...

weixin_39740346的博客 217

k8s 之 tomcat app + mysql练习

思考 k8s中不同类型的pod之间如何相互访问? 例如web服务如何访问db服务? 资料下载 下载地址:https://www.qstack.com.cn/tomcat_demo.zip 解压unzip tomcat_demo.zip [root@k8s-master k8s]# ls tomcat_demo mysql-rc.yml mysql-svc.yml tomcat-rc.yml tomcat-svc.yml 操作演示 [root@k8s-master tomcat_demo].

batman 945

《Centos7——kubernetes 实操:tomcat+mysql》

kubernetes 实操:tomcat+mysql 1. 先搭建k8s https://blog.youkuaiyun.com/weixin_45842014/article/details/108757132 2. Kubernetes 实战:部署DashBoard https://blog.youkuaiyun.com/weixin_45842014/article/details/108778229 上面链接只用实现到登录到web界面就可以 3. 启动容器mysql、myweb mysql服务 cd /usr/loca

weixin_45842014的博客 440

kubernetes管理mysql_kubernetes云平台管理实战:tomcat + mysql(十二)

一、实验准备1、文件结构与组成[root@master tomcat_demo]# lsmysql-rc.yml mysql-svc.yml tomcat-rc.yml tomcat-svc.yml2、具体内容mysql-rc.yml[root@master tomcat_demo]# cat mysql-rc.ymlapiVersion: v1kind: ReplicationContro...

weixin_30863465的博客 255

kubernetes 实操:tomcat+mysql

环境: [root@k8s-master myweb]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready master 168d v1.17.0 k8s-node1 Ready <none> 168d v1.17.0 k8s-node2 Ready <none> 168d v1.17.0 需要启动两个容器myw

zhangshaohuas的博客 363

Kubernetes 示例 - tomcat + mysql

这个示例是《Kubernetes 权威指南(第二版)》第一章中的例子,部署一个 Java 应用,访问 MySql 数据库。 需要启动2个容器,webapp 和 mysql,每个容器各需要2个配置文件(ReplicationController + Service)。 MySql 的配置文件 mysql-rc.yaml apiVersion: v1 kind: ReplicationCon...

AI技术改变世界 720

k8s实例---tomcat

[root@k8smaster tomcat_demo]# pwd /root/k8s_yml/tomcat_demo [root@k8smaster tomcat_demo]# ls mysql-rc.yml mysql-svc.yml tomcat-rc.yml tomcat-svc.yml [root@k8smaster tomcat_demo]# cat tomcat-rc.yml...

xiha的博客 373

kubernetes的tomcat实例

一、实验注意:若用虚拟机,虚机的内存和CPU设置请酌情调大,否则可能无法启动tomcat。此实验对mysql的版本有要求,不能用最新的,故选择5.7版本的 二、在每个node上拉取Tomcat镜像和Mysql镜像 docker pull kubeguide/tomcat-app:v2 docker pull daocloud.io/library/mysql:5.7 三、构建Mysql R...

weixin_42275939的博客 1360

kubernetes1.10 mysql_kubernetes云平台管理实战:tomcat + mysql(十二)

一、实验准备1、文件结构与组成[[emailprotected] tomcat_demo]# lsmysql-rc.yml mysql-svc.yml tomcat-rc.yml tomcat-svc.yml2、具体内容mysql-rc.yml[[emailprotected] tomcat_demo]# cat mysql-rc.ymlapiVersion: v1kind: Repli...

weixin_39976382的博客 97

单机版的K8s环境搭建及部署Java Web应用Demo

傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波

山河已无恙 1433
上一篇: kubernetes 服务发现和负载均衡
下一篇: Traefik-kubernetes 负责均衡器初试
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值