最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

头盔Kubernetes安装的MySQL与应用的NodeJS

IT培训 admin 6浏览 0评论

头盔Kubernetes安装的MySQL与应用的NodeJS

我是新来Kubernetes和掌舵的世界,尝试部署使用Kubernetes和头盔在Azure上kKubernetes服务MySQL数据库应用程序的NodeJS。

这是我迄今所做的:

Dockerfile

FROM node:10-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 32000
CMD [ "node", "app.js" ]

我已经建立了使用此Dockerfile的图像,然后把它推到一个存储库上我ACR注册表。此应用程序正在与mysql数据库,所以安装我的应用程序的掌舵人图表之前,我已经安装使用以下命令我群集上mysql舵表:

helm install --name mysql --set mysqlRootPassword=rootpassword,mysqlUser=mysql,mysqlPassword=my-password,mysqlDatabase=mydatabase,persistence.existingClaim=mysql-pvc stable/mysql

在那之后,我有出口两个可变集群,如:

MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306

那么端口转发作为后台进程,如:

kubectl port-forward svc/mysql 3306

在那之后我已经安装了自己的应用程序的图表,我创建了一个图表只是通过运行helm create mychart,然后创建一个自定义values.yaml文件,并把它安装,这是因为:

image:
    registry: helmcr.azurecr.io
    repository: helmcr.azurecr.io/helloworldtest01
    tag: 0.3
service:
    name: http
    type: LoadBalancer
    port: 32000
    internalPort: 32000
hosts:
    - name: mychart.local
      path: /

安装这两个图表之后,应用程序应该连接到mysql但它说:CrashLoopBackOff

更新:这是我是如何配置的数据库连接我

application:
module.exports = {
    adapters: {
        mysqlAdapt: mysqlAdapter
    },

  connections: {
    mysqlDB: {
        adapter: 'mysqlAdapt',
        host: process.env.MYSQL_SERVICE_HOST,
        database: 'mydatabase',
        user:'root',
        password:'my-password',
        port: process.env.MMYSQL_SERVICE_PORT,
        supportBigNumbers:true, //true/false
        debug:['ComQueryPacket'], //false or array of node-mysql debug options
        trace:true //true/false
    } 
  }
};

当我运行以下命令来获取日志:

kubectl logs myrel09-mychart09-5b8bb86788-9k627 -p

在这里,上述命令的输出:

Wed, 06 Feb 2019 13:29:21 GMT body-parser deprecated bodyParser: use individual json/urlencoded middlewares at app.js:10:9
Wed, 06 Feb 2019 13:29:21 GMT body-parser deprecated undefined extended: provide extended option at node_modules/body-parser/index.js:105:29
Wed, 06 Feb 2019 13:29:21 GMT express deprecated app.del: Use app.delete instead at node_modules/express-resource/index.js:153:19
Load model crud
(node:1) [DEP0095] DeprecationWarning: timers.enroll() is deprecated. Please use setTimeout instead.

/usr/src/app/app.js:32
    if (err) throw err;
             ^
Error (E_UNKNOWN) :: Encountered an unexpected error
: Could not connect to MySQL:
Error: connect ECONNREFUSED 127.0.0.1:3306
    at afterwards (/usr/src/app/node_modules/sails-mysql/lib/connections/spawn.js:72:13)
    at /usr/src/app/node_modules/sails-mysql/lib/connections/spawn.js:40:7
    at Handshake.onConnect [as _callback] (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/Pool.js:54:9)
    at Handshake.Sequence.end (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
    at Protocol.handleNetworkError (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:364:14)
    at PoolConnection.Connection._handleNetworkError (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:421:18)
    at Socket.emit (events.js:189:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)

当我试图从我的本地系统连接到这个数据库mysql,它连接成功,这意味着该数据库工作正常,但有什么毛病我的配置。

有什么可以错在这里?

提前致谢!

回答如下:

当您使用相同的集群部署两个应用程序,你可以使用群集IP为好。

如果你想前进使用端口,我想你应该用你的节点不是本地主机IP的IP。

头盔Kubernetes安装的MySQL与应用的NodeJS

我是新来Kubernetes和掌舵的世界,尝试部署使用Kubernetes和头盔在Azure上kKubernetes服务MySQL数据库应用程序的NodeJS。

这是我迄今所做的:

Dockerfile

FROM node:10-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 32000
CMD [ "node", "app.js" ]

我已经建立了使用此Dockerfile的图像,然后把它推到一个存储库上我ACR注册表。此应用程序正在与mysql数据库,所以安装我的应用程序的掌舵人图表之前,我已经安装使用以下命令我群集上mysql舵表:

helm install --name mysql --set mysqlRootPassword=rootpassword,mysqlUser=mysql,mysqlPassword=my-password,mysqlDatabase=mydatabase,persistence.existingClaim=mysql-pvc stable/mysql

在那之后,我有出口两个可变集群,如:

MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306

那么端口转发作为后台进程,如:

kubectl port-forward svc/mysql 3306

在那之后我已经安装了自己的应用程序的图表,我创建了一个图表只是通过运行helm create mychart,然后创建一个自定义values.yaml文件,并把它安装,这是因为:

image:
    registry: helmcr.azurecr.io
    repository: helmcr.azurecr.io/helloworldtest01
    tag: 0.3
service:
    name: http
    type: LoadBalancer
    port: 32000
    internalPort: 32000
hosts:
    - name: mychart.local
      path: /

安装这两个图表之后,应用程序应该连接到mysql但它说:CrashLoopBackOff

更新:这是我是如何配置的数据库连接我

application:
module.exports = {
    adapters: {
        mysqlAdapt: mysqlAdapter
    },

  connections: {
    mysqlDB: {
        adapter: 'mysqlAdapt',
        host: process.env.MYSQL_SERVICE_HOST,
        database: 'mydatabase',
        user:'root',
        password:'my-password',
        port: process.env.MMYSQL_SERVICE_PORT,
        supportBigNumbers:true, //true/false
        debug:['ComQueryPacket'], //false or array of node-mysql debug options
        trace:true //true/false
    } 
  }
};

当我运行以下命令来获取日志:

kubectl logs myrel09-mychart09-5b8bb86788-9k627 -p

在这里,上述命令的输出:

Wed, 06 Feb 2019 13:29:21 GMT body-parser deprecated bodyParser: use individual json/urlencoded middlewares at app.js:10:9
Wed, 06 Feb 2019 13:29:21 GMT body-parser deprecated undefined extended: provide extended option at node_modules/body-parser/index.js:105:29
Wed, 06 Feb 2019 13:29:21 GMT express deprecated app.del: Use app.delete instead at node_modules/express-resource/index.js:153:19
Load model crud
(node:1) [DEP0095] DeprecationWarning: timers.enroll() is deprecated. Please use setTimeout instead.

/usr/src/app/app.js:32
    if (err) throw err;
             ^
Error (E_UNKNOWN) :: Encountered an unexpected error
: Could not connect to MySQL:
Error: connect ECONNREFUSED 127.0.0.1:3306
    at afterwards (/usr/src/app/node_modules/sails-mysql/lib/connections/spawn.js:72:13)
    at /usr/src/app/node_modules/sails-mysql/lib/connections/spawn.js:40:7
    at Handshake.onConnect [as _callback] (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/Pool.js:54:9)
    at Handshake.Sequence.end (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
    at Protocol.handleNetworkError (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Protocol.js:364:14)
    at PoolConnection.Connection._handleNetworkError (/usr/src/app/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js:421:18)
    at Socket.emit (events.js:189:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)

当我试图从我的本地系统连接到这个数据库mysql,它连接成功,这意味着该数据库工作正常,但有什么毛病我的配置。

有什么可以错在这里?

提前致谢!

回答如下:

当您使用相同的集群部署两个应用程序,你可以使用群集IP为好。

如果你想前进使用端口,我想你应该用你的节点不是本地主机IP的IP。

发布评论

评论列表 (0)

  1. 暂无评论