kubernetes进阶之一:简单例子

时间:2022-01-04 18:54:10

kubernetes 从一个简单例子开始

参考 《kubernetes 权威指南》一节的 从一个简单例子开始,操作实录。

一、Java Web 应用结构

  kubernetes进阶之一:简单例子

二、启动MySql服务

1、首先为MySql服务创建一个RC定义文件:mysql-rc.yaml(这里要注意镜像版本最新的mysql需要认证,本例子采用mysql:5.7)

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    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"

2、发布到Kubernetes集群(Master节点执行命令)

  1)、创建RC

  # kubectl create -f mysql-rc.yaml

  2)、验证创建是否成功

  # kubectl get rc
  kubernetes进阶之一:简单例子 #kubectl get pods
  kubernetes进阶之一:简单例子

三、构建Mysql Kubernetes Service定义文件mysql-svc.yaml

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

# kubectl create -f mysql-svc.yaml

# kubectl get svc

  kubernetes进阶之一:简单例子

四、启动Tomcat应用

1、创建对应的RC文件myweb-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
  replicas: 1
  selector:
    app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
        - name: myweb
          image: kubeguide/tomcat-app:v1
          ports:
          - containerPort: 8080

# kubectl create -f myweb-rc.yaml

# kubectl get pod

kubernetes进阶之一:简单例子

五、构建Tomcat Kubernetes Service定义文件myweb-svc.yaml

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

# kubectl create -f myweb-svc.yaml

# kubectl get svc

kubernetes进阶之一:简单例子

六、通过浏览器访问页面

防火墙需要提前关闭:

  systemctl stop firewalld

kubernetes进阶之一:简单例子