如何将我的pod暴露到互联网并从浏览器访问它?

时间:2016-04-14 13:07:30

标签: amazon-web-services docker cluster-computing kubernetes

首先我下载了​​kubernetes,kubectl并从aws创建了一个集群(export KUBERNETES_PROVIDER=aws; wget -q -O - https://get.k8s.io | bash

我在项目circle.yml中添加了一些行来使用circleCI服务来构建我的图像。

为了支持码头我添加了:

machine:
  services:
    - docker

并创建我的图像并将其发送到我添加的工件:

deployment:
    commands:
      - docker login -e admin@comp.com -u ${ARTUSER} -p ${ARTKEY} docker-docker-local.someartifactory.com
      - sbt -DBUILD_NUMBER="${CIRCLE_BUILD_NUM}" docker:publish

之后我创建了一个2个文件夹:

我的项目(MyApp)文件夹包含两个文件:

controller.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: MyApp
  labels:
    name: MyApp
spec:
  replicas: 1
  selector:
    name: MyApp
  template:
    metadata:
      labels:
        name: MyApp
        version: 0.1.4
    spec:
      containers:
      - name: MyApp
        #this is the image artifactory
        image: docker-docker-release.someartifactory.com/MyApp:0.1.4
        ports:
        - containerPort: 9000
      imagePullSecrets:
        - name: myCompany-artifactory

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: MyApp
  labels:
    name: MyApp
spec:
  # if your cluster supports it, uncomment the following to automatically create
  # an external load-balanced IP for the frontend service.
  type: LoadBalancer
  ports:
    # the port that this service should serve on
  - port: 9000
  selector:
    name: MyApp

我还有另一个文件夹(善良:秘密)。

现在我用:

创建了我的pod

kubectl create -f controller.yaml

现在,当我登记kubectl get pods时,我的手机已经运行了。

现在,如何从浏览器访问我的pod?我的项目是一个游戏项目,所以我想从浏览器中获取它...我如何以最简单的方式公开它?

感谢

1 个答案:

答案 0 :(得分:0)

  • Replication Controller唯一的责任是确保在群集上运行具有给定配置的pod数量。

  • Service是公开(或内部)将您的pod暴露给系统其他部分(或互联网)的内容。

您应该使用将创建服务的yaml文件(kubectl create -f service.yaml)创建服务,通过标签选择器MyApp选择pod来处理文件中给定端口的负载({{ 1}})。

然后使用9000查看已注册的服务,以查看为其分配的端点(ip)。