【问题标题】:Automation own job through Jenkins And publish over Kubernetes through HTTPD or NGINX通过 Jenkins 自动化自己的工作并通过 HTTPD 或 NGINX 在 Kubernetes 上发布
【发布时间】:2019-11-09 03:02:00
【问题描述】:

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

【问题讨论】:

  • 请添加步骤您尝试了什么?

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


【解决方案1】:

首先你必须创建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 集线器。您可以将图像推送到存储库并从服务器中提取。

--在本地机器上

$ 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 的 Deployment,由 .metadata.name 字段指示。

  • Deployment 创建三个复制的 Pod,由副本字段指示。

  • selector 字段定义了 Deployment 如何查找要管理的 Pod。在这种情况下,您只需选择在 Pod 模板中定义的标签(app: your-app)。

但是,只要 Pod 模板本身满足规则,更复杂的选择规则也是可能的。

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

$ kubectl create -f your_deployment_file_name.yaml

您可以在此处找到更多信息:kubernetes-deployment

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 2021-05-27
    相关资源
    最近更新 更多