首页 > Web开发 > 详细

k8s-部署AspNetCore应用

时间:2020-10-16 10:20:48      阅读:49      评论:0      收藏:0      [点我收藏+]

1、准备AspNetCore WebApi项目

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

技术分享图片

编写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

技术分享图片

查看pod,svc状态:

kubectl get svc,pod -o wide

技术分享图片

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

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

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

技术分享图片

技术分享图片

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

k8s-部署AspNetCore应用

原文:https://www.cnblogs.com/roluodev/p/13824191.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!