【问题标题】:How to deploy a simple Hello World program to local Kubernetes cluster如何将一个简单的 Hello World 程序部署到本地 Kubernetes 集群
【发布时间】:2020-06-23 20:35:54
【问题描述】:

我有一个非常简单的 spring-boot Hello World 程序。当我在本地运行应用程序时,我可以导航到http://localhost:8080/ 并看到页面上显示的“Hello World”问候语。我还创建了一个 Dockerfile,并且可以从中构建一个映像。

我的下一个目标是将其部署到本地 Kubernetes 集群。我已经使用 Docker Desktop 创建了一个本地 kubernetes 集群。我想为我的应用程序创建一个部署,在集群上本地托管它,然后从浏览器访问它。

我不确定从哪里开始进行此部署。我知道我需要创建图表,但我不知道如何最终将此图像推送到我的集群...

【问题讨论】:

    标签: spring-boot docker kubernetes kubernetes-helm docker-desktop


    【解决方案1】:

    您需要分别创建一个 kubernetes deploymentservice 定义。

    这些定义可以是 json 或 yaml 格式。这是示例定义,您可以将这些定义用作部署的模板。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: your-very-first-deployment
      labels:
        app: first-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: first-deployment
      template:
        metadata:
          labels:
            app: first-deployment
        spec:
          containers:
          - name: your-app
            image: your-image:with-version
            ports:
            - containerPort: 8080
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: your-service
    spec:
      type: NodePort
      ports:
        - port: 80
          nodePort: 30180
          targetPort: 8080
      selector:
        app: first-deployment
    

    不要忘记使用您的 image nameimage version 更新部署 yaml 中的图像行。替换后,使用名称保存此文件,例如 deployment.yaml,然后使用 kubectl apply -f deployment.yml 命令保存 apply 此定义。

    注意,您需要使用port 30180 来访问您的应用程序,因为它在service 定义中声明为nodePort 值。 (http://localhost:30180)

    链接

    Kubernetes 服务:https://kubernetes.io/docs/concepts/services-networking/service/

    Kubernetes 部署:https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

    【讨论】:

    • 这对我有用。虽然我不得不将我的 docker 镜像推送到 Docker Hub 注册表。你知道是否有办法从本地存储库推送和拉取 docker 镜像吗?我希望它尽可能地本地化。
    • @MikeIppolito 您需要在网络中的某处安装诸如 nexus 之类的工件存储库:sonatype.com/nexus-repository-oss 之后,您可以使用 nexus 作为您的 docker 存储库,然后从那里推送和拉取您的图像
    • 感谢您的帮助 - 我最终按照说明运行本地 Docker 注册表 here
    • 我不知道,谢谢您的评论。
    【解决方案2】:

    你需要先定义部署开始,在部署中定义docker镜像和所需环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 2019-10-17
      • 1970-01-01
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多