Kubernetes应用程序–将多个资源打包在一起

在Kubernetes中部署应用程序需要创建多个资源,例如Pod,服务,复制控制器等。 通常,每个资源都在配置文件中定义,并使用kubectl脚本创建。 但是,如果需要创建多个资源,则需要多次调用kubectl 。 因此,如果您需要创建以下资源:

  • MySQL Pod
  • MySQL服务
  • WildFly复制控制器

然后,命令如下所示:

kubectl.sh create -f ~/workspaces/kubernetes-java-sample/app-mysql-pod.yaml
kubectl.sh create -f ~/workspaces/kubernetes-java-sample/app-mysql-service.yaml
kubectl.sh create -f ~/workspaces/kubernetes-java-sample/app-wildfly-rc.yaml

为了方便起见,请将这些调用包装在shell脚本中。 但这不是很直观! 有一种更好,更自然和直观的方法。

Kubernetes允许在单个配置文件中指定多个资源。 这样就可以创建一个“ Kubernetes应用程序”,该应用程序可以轻松地由多个资源组成。

上一节显示了如何使用多个配置文件来部署Java EE应用程序。 也可以使用单个配置文件来部署此应用程序。

如上所述,可以使用以下配置文件创建一个由MySQL Pod,MySQL Service和WildFly Replication Controller组成的应用程序:

apiVersion: v1
kind: Pod
metadata:
  name: mysql-pod
  labels:
    name: mysql-pod
    context: docker-k8s-lab
spec:
  containers:
    -
      name: mysql
      image: mysql:latest
      env:
        -
          name: "MYSQL_USER"
          value: "mysql"
        -
          name: "MYSQL_PASSWORD"
          value: "mysql"
        -
          name: "MYSQL_DATABASE"
          value: "sample"
        -
          name: "MYSQL_ROOT_PASSWORD"
          value: "supersecret"
      ports:
        -
          containerPort: 3306
----
apiVersion: v1
kind: Service
metadata:
  name: mysql-service
  labels:
    name: mysql-pod
    context: docker-k8s-lab
spec:
  ports:
    # the port that this service should serve on
    - port: 3306
  # label keys and values that must match in order to receive traffic for this service
  selector:
    name: mysql-pod
    context: docker-k8s-lab
----
apiVersion: v1
kind: ReplicationController
metadata:
  name: wildfly-rc
  labels:
    name: wildfly
    context: docker-k8s-lab
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: wildfly
    spec:
      containers:
      - name: wildfly-rc-pod
        image: arungupta/wildfly-mysql-javaee7:k8s
        ports:
        - containerPort: 8080

请注意,每个部分(用于MySQL Pod,MySQL服务和WildFly Replication Controller的每个部分)均由----分隔。

这样的应用程序可以创建为:

kubectl.sh create -f ~/workspaces/kubernetes-java-sample/app.yaml
pods/mysql-pod
services/mysql-service
replicationcontrollers/wildfly-rc

翻译自: https://www.javacodegeeks.com/2015/08/kubernetes-application-package-multiple-resources-together.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值