首先我下载了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)文件夹包含两个文件:
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
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?我的项目是一个游戏项目,所以我想从浏览器中获取它...我如何以最简单的方式公开它?
感谢
答案 0 :(得分:0)
Replication Controller唯一的责任是确保在群集上运行具有给定配置的pod数量。
Service是公开(或内部)将您的pod暴露给系统其他部分(或互联网)的内容。
您应该使用将创建服务的yaml文件(kubectl create -f service.yaml
)创建服务,通过标签选择器MyApp
选择pod来处理文件中给定端口的负载({{ 1}})。
然后使用9000
查看已注册的服务,以查看为其分配的端点(ip)。