zoukankan      html  css  js  c++  java
  • 一个简单的Kubernetes应用部署示例

    说明

    我们通过一个示例来演示一下kubernetes部署应用的基本配置。

    这个示例相对比较简单,就是一个tomcat应用加上一个mysql数据库

    在tomcat里运行一个简单的webappp,这个app会访问Mysql获取数据。并展示在页面上。为了演示和简化的目的,只要程序正确连接到了数据库上,它就会自动完成对应的table的创建与初始化数据的准备工作。所以当我们通过浏览器访问此应用的时候,就会显示一个表格的页面,数据则来自数据库。

    配置

    我们在/root/k8s-yaml/目录下创建一个webapp的目录,在这个目录里面创建四个文件:

    .
    ├── mysql-dm.yaml
    ├── mysql-svc.yaml
    ├── myweb-dm.yaml
    └── myweb-svc.yaml
    

    这四个文件的内容分别如下:

    mysql-dm.yaml:

    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: mysql
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: mysql
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
          - name: mysql
            image: mysql:5.7
            ports:
            - containerPort: 3306 
            env:
            - name: MYSQL_ROOT_PASSWORD
              value: "123456"
    

    mysql-svc.yaml:

    apiVersion: v1
    kind: Service
    metadata:
      name: mysql
    spec:
      ports:
      - port: 3306
      selector:
        app: mysql``
    

    myweb-dm.yaml:

    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: myweb
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: myweb
      template:
        metadata:
          labels:
            app: myweb
        spec:
          containers:
          - name: myweb
            image: kubeguide/tomcat-app:v1
            ports:
            - containerPort: 8080
            env:
            - name: MYSQL_SERVICE_HOST
              value: 'mysql'
            - name: MYSQL_SERVICE_PORT
              value: '3306
    

    myweb-svc.yaml:

    apiVersion: v1
    kind: Service
    metadata:
      name: myweb
    spec:
      type: NodePort
      ports:
      - port: 8080
        nodePort: 30001
      selector:
        app: myweb
    

    我们通过如下方式启动:

    kubectl apply -f ./
    

    访问:

    http://$node_ip:30001/demo

  • 相关阅读:
    vue自定义指令:v-drag使用 拖动拖拽
    element ui 中动态添加的树形结构(带删除功能的),不管点击删除哪个都会删除掉最后一个
    element ui 表格中的插槽用法
    报错:Uncaught SyntaxError: Unexpected token u in JSON at position 0
    vue报错:Duplicate keys detected: ' '. This may cause an update error
    el-input验证规则
    el-input 给v-model赋了默认值后不能编辑
    DC-2 渗透测试
    DC:1渗透测试
    CTF easytrick
  • 原文地址:https://www.cnblogs.com/breezey/p/9457734.html
Copyright © 2011-2022 走看看