5、k8s部署netcore

    一、创建.netcore项目

          ①、选择docker支持相应环境

5、k8s部署netcore

       ②、已经生成Dockerfile【使用默认Dockerfile只需修改EXPOSE(使用端口)】

5、k8s部署netcore

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 7000

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["OpenSlide.Fast.csproj", ""]
RUN dotnet restore "./OpenSlide.Fast.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "OpenSlide.Fast.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "OpenSlide.Fast.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "OpenSlide.Fast.dll"]

5、k8s部署netcore

    二、生成镜像、运行镜像【我这边使用Docker Desktop生成镜像,上传至Docker Hub,如需下载:Docker Desktop

           ①、打开powershell或dos(cmd),定向至项目地址

5、k8s部署netcore

5、k8s部署netcore

           ②、打包镜像、查看镜像【openslide-->镜像名称,. -->当前目录】

 #下载微软dotnet镜像【好像用会到里面的sdk】 
docker pull microsoft/dotnet

#打包创建镜像
docker build -t  apricot .

5、k8s部署netcore

 #查看所有镜像
docker images

5、k8s部署netcore

           ③、添加运行容器

 #运行容器   --name:容器名称 -d:容器后台运行  -p:将本地计算机上的端口 7001 映射到容器中的端口 7000,openslide-image:镜像名称
docker run --name apricot -d -p 7001:7000 apricot

5、k8s部署netcore

           ④、浏览运行容器

5、k8s部署netcore

            ⑤、docker基本操作命令

 #列出所有镜像
docker images

 #列出所有容器【包括为运行的】
docker ps -a

 #停止容器  container_id-->容器Id
docker stop container_id

 #删除容器
docker rm container_id

 #删除镜像 image_name-->镜像名称
docker rmi image_name

#查看日志
docker logs container_id

            ⑤、docker使用阿里云镜像加速【免费,注册登录即可获取】

5、k8s部署netcore

5、k8s部署netcore

 #查看配置
docker info 

5、k8s部署netcore

    二、将镜像上传至docker hub

           ①、登录docker hub

           ②、创建仓库

5、k8s部署netcore

           ③、提交容器

 #提交运行的容器
docker commit container_id 1764564459/apricot #仓库地址

5、k8s部署netcore

           ④、推送镜像

  #登录容器【我这已经登录,未登录会提示登录】
docker login

5、k8s部署netcore

 #推送镜像至docker hub  latest-->版本号
docker push 1764564459/apricot:latest

5、k8s部署netcore

5、k8s部署netcore

    二、配置k8syaml文件、运行netcore【master】

           ①、创建apricot.yaml,配置yaml文件【yaml配置

 #创建yaml文件加
mkdir /opt/yaml/netcore/apricot

#定位至apricot文件夹
cd /opt/yaml/netcore/apricot

#创建配置文件
touch apricot.yaml

#打开文件
vi apricot.yaml

#写入配置【去掉注释】
apiVersion: apps/v1 kind: Deployment metadata: name: k8s-apricots labels: name: k8s-apricots spec: replicas: 2 selector: matchLabels: name: k8s-apricots template: metadata: labels: name: k8s-apricots spec: containers: - name: k8s-apricots image: 1764564459/apricot #镜像地址 ports: - containerPort: 7000 #端口要与netcore端口一致 imagePullPolicy: Always --- kind: Service apiVersion: v1 metadata: name: k8s-apricots spec: type: NodePort ports: - port: 7000 targetPort: 7000 selector: name: k8s-apricots

           ②、kubectl 应用提交apricot.yaml

kubectl  apply -f apricot.yaml

5、k8s部署netcore

           ③、查看运行状态及映射端口

 #查看镜像映射端口【46552:暴露访问端口】
kubectl get svc

5、k8s部署netcore

 #查看所有pods运行状态【都是Running,一个是service,一个是Deployment】
kubectl get pods

5、k8s部署netcore

           ④、访问netcore【Node节点(IP+暴露端口)】

5、k8s部署netcore

 

上一篇:.netcore GRPC根据协议生成代码,以及去掉非空判断


下一篇:在Windows上远程调试Ubuntu-Arm上的.Netcore