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应用 阅读详情

相关推荐

Multisim 14.0实战:从零搭建可调幅多波形信号发生器(附仿真文件)

本文详细介绍了如何在Multisim 14.0中从零搭建一个可调幅多波形信号发生器,涵盖方波、三角波和正弦波的生成原理与实现步骤。通过核心电路架构解析、关键参数设计及Multisim实战操作,帮助电子工程学习者和硬件工程师掌握信号发生器的设计与调试技巧,并提供仿真文件供实践验证。

nokia的博客 1073

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

Dynamics 365 F&O新手必看:Visual Studio 2019搭建项目框架全流程(含Model避坑指南)

本文详细介绍了如何在Visual Studio 2019中为Dynamics 365 Finance and Operations搭建企业级项目框架,包括Model分层策略、Solution管理及开发工作流优化。特别提供了Model避坑指南和实用配置建议,帮助新手快速上手并避免常见错误。

weixin_30505225的博客 381

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

利用ORCAD/pspice 仿真分析电路的幅度相位谱

利用ORCAD的pspice仿真分析电路的相位谱1.介绍2.搭建电路原理图3.建立仿真文件,进行交流分析4.仿真、查看输出5.总结 1.介绍 orcad配合pspice一直是电路原理图绘制和仿真的主要工具,pspice工具提供了诸如暂态分析、直流分析、交流分析等多个工具。学校主要教的是multisim,对orcad讲得很少,最进要利用orcad对运放构成的电路的频响、相移特性进行分析,发现资料幅度...

qq_40011737的博客 1万+

大漠多线程增强版:解决窗口消失、坐标错乱与识别卡死

多线程环境下窗口自动化面临的核心挑战,本质是GDI资源非线程安全、HWND生命周期失控及图像引擎状态污染三大底层问题。Windows GUI编程中,跨线程共享hDC、缓存失效的窗口句柄、OpenCV静态Mat等设计缺陷,导致FindPic失败、GetCursorPos异常、坐标跳变等典型故障。本方案通过线程局部存储(TLS)重构资源生命周期、WinEventHook+心跳探测构建实时窗口状态链、ABI对齐的多语言内存契约,实现稳定低延迟的并发UI识别与控制。适用于游戏多开监控、电商RPA、后台UI状态采集等

weixin_30561177的博客 476

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

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

weixin_43839635的博客 1499

告别第三方工具!用Windows自带蓝牙玩转BLE设备调试(保姆级图文教程)

本文详细介绍了如何利用Windows自带的蓝牙功能进行BLE设备调试,无需第三方工具。从硬件准备、系统配置到实战操作,提供保姆级图文教程,帮助开发者高效完成设备发现、数据交互等全流程调试工作。特别适合物联网开发者和智能硬件爱好者。

o5p6q的博客 725

K8S demo

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

justsomebody126的专栏 340

115网页版VR模式终于能用了!电脑直接播放vr视频沉浸感满满 115vr播放 无需vr头盔播放vr视频 在线vr播放器 115网盘360度视频播放方法 115全景视频播放教程

油猴 + 脚本让你网页端直接开启 VR 模式支持 360 视频拖动视角,非常沉浸适合电脑设备直接用无需vr头盔也能轻松畅看vr视频,希望也能帮到你。如果你也被 115 的限制搞烦了,不妨试试这招。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 5710

9.6华为OD机试真题 新系统 - 仓储货物有序出库 (Java/Py/C/C++/Js/Go)

9.6华为OD机试真题 新系统 - 仓储货物有序出库 (Java/Py/C/C++/Js/Go)

算法大师! 1196

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

【参数配置】OpenClaw 的破解之道(Doom Loop)

本文深入解析了OpenClaw中的Doom Loop(死循环)问题及其应对策略。主要内容包括: Agent Loop的核心概念:基于ReAct范式,OpenClaw通过"思考-行动-观察"循环执行任务,但可能陷入无进展的死循环。 Doom Loop现象:Agent持续执行但任务进度为零,常见于四种工具调用场景:相同调用重复执行、调用不存在工具、轮询工具卡死、操作交替振荡。 OpenClaw的防御机制: 第一道防线:重试端断路器,通过上下文压缩熔断(最多3次)和总重试次数熔断(32-160次)防止无限重试。

海兰 4039

Kubernetes部署java web demo(tomcat+mysql)

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

一叶舟遥 1217

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

Dr_Myst的博客 2518

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

生产中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、付费专栏及课程。

余额充值