通过Jenkins自动化自己的工作,并通过HTTPD或NGINX在Kubernetes上发布

时间:2019-06-27 06:26:33

标签: nginx jenkins kubernetes httpd.conf kubernetes-deployment

我有一些正在反应的文件。我正在从npm进行构建。我正在本地进行此构建。我有构建路径。 我想将此构建部署到kubernetes的Pod中。 怎么写deployment.yaml? 如何配置可以发布我的代码的nginx或httpd根文件夹? 如果首先我必须制作该项目文件的docker映像,那又如何?

1 个答案:

答案 0 :(得分:0)

首先,您必须创建Dockerfile

鸡蛋。 Dockerfile:

FROM golang
WORKDIR /go/src/github.com/habibridho/simple-go
ADD . ./
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix .
EXPOSE 8888
ENTRYPOINT ./simple-go

构建图像并尝试运行它。

$ docker build -t simple-go .

$ docker run -d -p 8888:8888 simple-go

下一步是将图像传输到服务器。您可以使用Docker Hub。您可以将图像推送到存储库,然后将其从服务器中拉出。

-在本地计算机上

$ docker tag simple-go habibridho/simple-go

$ docker push habibridho/simple-go

-在服务器上

$ docker pull habibridho/simple-go

您必须注意,默认的docker存储库可见性是公共的,因此,如果您的项目是私有的,则需要从Docker Hub网站更改项目的可见性。

有关该过程的有用信息,您可以在这里找到: docker-images

一旦服务器中有了映像,就可以像创建本地部署一样在本地计算机中运行该应用程序。

以下是部署的示例。它创建一个ReplicaSet来调出您的三个应用Pod:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: your-app
  template:
    metadata:
      labels:
        app: your-app
    spec:
      containers:
      - name: your-app
        image: your-app:version
        ports:
        - containerPort: port

在此示例中:

创建一个名为your-deployment的部署,由.metadata.name字段指示。

  • 部署创建三个复制的Pod,由“副本”字段指示。

  • 选择器字段定义部署如何查找要管理的Pod。在这种情况下,您只需选择在Pod模板(应用程序:your-app)中定义的标签。

但是,只要Pod模板本身满足该规则,就可以使用更复杂的选择规则。

要创建部署,请运行以下命令:

$ kubectl create -f your_deployment_file_name.yaml

您可以在这里找到更多信息:kubernetes-deployment