zoukankan      html  css  js  c++  java
  • k8s-部署AspNetCore应用(3)

    1、准备AspNetCore WebApi项目

    修改Controller,返回当前主机的名称和IP:

    image-20201015231323079

    编写Dockerfile:

    #指定基础镜像
    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
    
    #配置工作目录 相当于cd
    WORKDIR /app
      
    #暴露容器端口,此端口与程序运行路径一致,可
    EXPOSE 5000
    
    #复制文件到工作目录
    COPY . .
     
    #ENV :配置系统环境变量,比如程序环境环境等在这里配置(开发、预发、线上环境)
    #这里是配置程序运行端口,如果程序不使用默认的80端口这里一定要设置(程序运行端口)
    ENV ASPNETCORE_URLS http://+:5000
    
    #设置时间为中国上海,默认为UTC时间
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    #启动程序
    ENTRYPOINT ["dotnet", "AspNetCoreDeployInK8S.dll"]
    

    2、制作镜像

    docker build -t easyboys/k8sdemo:coreapi-v1  .
    

    3、编写发布应用的demoDeployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: k8s-demo-deployment
      labels:
        k8s-app: k8s-demo-web
    spec:
      replicas: 2
      selector:
        matchLabels:
          k8s-app: k8s-demo-web
      template:
        metadata:
          labels:
            k8s-app: k8s-demo-web
        spec:
          containers:
          - name: k8s-demo
            image: easyboys/k8sdemo:coreapi-v1
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 5000
    ---
    kind: Service
    apiVersion: v1
    metadata:
      labels:
        k8s-app: k8s-demo-web
      name: k8s-demo-service
    spec:
      type: NodePort
      ports:
      - port: 5000
        targetPort: 5000
      selector:
        k8s-app: k8s-demo-web
    

    下篇文章再分析该yaml

    创建deployment:

    kubectl create -f  demoDeployment.yaml
    

    image-20201015231938221

    查看pod,svc状态:

    kubectl get svc,pod -o wide
    

    image-20201015232232840

    从上图可以看到对外暴露pod的端口为31803,且该api运行了两个副本,分别在node1和node2运行。

    4、在浏览器通过http://nodeIP:nodePort访问我们的api

    本次例子为http://192.168.124.202:32506/

    image-20201015232536292

    image-20201015232558854

    访问成功,证明我们的aspnetcore应用成功部署在K8S上!

  • 相关阅读:
    第1组 团队Git现场编程实战
    第二次结对编程作业
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    2019 SDN上机第二次作业
    2019 SDN上机第一次作业
    软件工程第五次作业
  • 原文地址:https://www.cnblogs.com/roluodev/p/13824191.html
Copyright © 2011-2022 走看看