window环境下使用k8s部署.net core项目

前提:已经部署镜像到Docker

在项目发布目录下新建.yaml文件,内容如下(以下仅举例出两种方式内容,可按需自由配置)
 --方式一(创建deployment 、服务、指定命名空间)

# ------------------- 注意层级结构,层级不对构建会报错 ------------------- #
apiVersion: apps/v1
kind: Deployment
metadata:
  name: k8s-api-demo
  namespace: k8s-api
  labels:
    k8s-app: k8s-api-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: k8s-api-demo
  template:
    metadata:
      labels:
        k8s-app: k8s-api-demo
    spec:
      containers:
      - name: k8s-api-demo
        image: demoapifordocker # 定义Pod启动的容器镜像地址
        imagePullPolicy: IfNotPresent # k8s默认值为Always,总是从远端拉取镜像,通过设置IfNotPresent或Never来使用本地镜像
        ports:
        - containerPort: 80
---
# ------------------- Service ------------------- #
kind: Service
apiVersion: v1
metadata:
   labels:
     k8s-app: k8s-api-demo
   name:k8s-api-demo
   namespace: k8s-api
spec:
   type: NodePort
   ports:
     - port: 80
       targetPort: 80
   selector:
     k8s-app: k8s-api-demo

在发布目录按住shift+加右键打开powerShell,按顺序执行以下命令

--创建yaml文件中的命名空间

kubectl create namespace k8s-api

--根据yaml配置文件构建
kubectl create -f 文件名.yaml


到这一步如果没有报错信息,那就已经完成部署

--查看端口,http://localhost:端口号

kubectl get svc -n k8s-api

--查看容器运行状态

kubectl get pod -n k8s-api

 映射到本机端口访问(port-forward 对应pod名称)

kubectl port-forward k8s-api-68bbbbc657-cqzjn -n k8s-api 8091:80

但对于外部依旧无法访问,如果需要暴露供外部直接访问,则需要创建 service

kubectl expose pod k8s-api-pod --name k8s-api-service --type=NodePort

获取服务

kubectl get service

服务会有一个CLUSTER-IP,可以在集群内使用CLUSTER-IP:80来访问该服务,如果是在集群外部,可以使用NodeIP:端口(节点所在服务器IP)来访问。


--方式二

 直接构建pod

apiVersion: v1
kind: Pod # 定义Kubernetes资源的类型为Pod
metadata:
  name: k8s-api-pod # 定义资源的名称
  labels: # 为Pod贴上标签,后面会介绍其用处
    app: k8s-api-pod
spec: # 定义资源的状态,对于Pod来说,最重要属性就是containers
  containers: # containers一个数组类型,如果你希望部署多个容器,可以添加多项
    - name: coreapi # 定义本Pod中该容器的名称
      image: demofordocker # 定义Pod启动的容器镜像地址
      imagePullPolicy: IfNotPresent # k8s默认值为Always,总是从远端拉取镜像,通过设置IfNotPresent或Never来使用本地镜像
      ports:
        - containerPort: 80 # 定义容器监听的端口(与Dockerfile中的EXPOSE类似,只是为了提供文档信息)
      livenessProbe: # 存活探针定义
        httpGet:
          path: /swagger/index.html # 存活探针请求路径
          port: 80 #存活探针请求端口

在发布目录按住shift+加右键打开powerShell,按顺序执行以下命令

kubectl create -f 文件名.yaml

(构建在默认命名空间(default)下)

kubectl get pod

映射到本机端口访问(port-forward 对应pod名称)

kubectl port-forward k8s-api-68bbbbc657-cqzjn -n k8s-api 8091:80

但对于外部依旧无法访问,如果需要暴露供外部直接访问,则需要创建 service

kubectl expose pod k8s-api-pod --name k8s-api-service --type=NodePort

获取服务

kubectl get service

服务会有一个CLUSTER-IP,可以在集群内使用CLUSTER-IP:80来访问该服务,如果是在集群外部,可以使用NodeIP:端口(节点所在服务器IP)来访问。

部署遇到的一些问题

--get deploymentment获取不到

后面加 -n kube-system

--命名空间查询: kubectl get namespace

--部署后运行失败,pod状态显示 ImagePullBackOff或者ErrPullOff

 这种情况是因为yaml文件中未配置从本地镜像获取,导致去线上拿;需要删除后重新开始

可通过执行以下命令查看pod Events中记录的错误记录,默认命名空间下可省略 -n 命名空间名

kubectl describe pod pod名称 -n 命名空间名


--删除pod

kubectl delete pod pod名 -n 命名空间名
 直接执行删除pod指令,会发现删除之后还是又会产生一个新的,实际上删除对应deployment即可

查询deployment

kubectl get deployment -n 命名空间名

删除deployment

kubectl delete deployment deployment名 -n 命名空间名

此时再查询命名空间下pod,可以看到已经没有了

参考以下文章:

.NET Core + K8S 玩转容器编排 - 「圣杰」 - 博客园 (cnblogs.com)

(二)搭建dotNetCore项目发布到k8s - 一滴雨、₯㎕ - 博客园 (cnblogs.com)
k8s中正确删除一个pod - effortsing - 博客园 (cnblogs.com)
k8s 创建删除命名空间--namespace_k8s create --names-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/433750.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【debug】element-ui时间控件回显后不可编辑且显示为空

问题&#xff1a;使用element-ui的时间控件回显数据&#xff0c;编辑数据没有反应&#xff1a;点时间和“确认”按钮都没反应。 输入框中会显示数据&#xff0c;但提交时的校验显示为空。 <el-form-item label"开始时间" prop"limitStartTime"><…

激光炸弹 刷题笔记

前置知识 二维前缀和 子矩阵的和 刷题笔记 {二维前缀和}-CSDN博客 思路 参考二维前缀和 将子矩阵的和 做成动态矩阵 一个个矩阵搜索 符合要求边长 矩阵中的元素和最大值 将x1,y1用i-k,j-k表示即可 x2,y2用i&#xff0c;j表示 代码 #include<iostream> #include<…

【定岗定编】某度假村酒店客房部定岗定编管理咨询项目纪实

该度假村酒店由于地域广阔&#xff0c;将客服部分为了四个不同区域&#xff0c;这样就导致了在不同的区域员工的接待量不均衡的状况&#xff0c;引起了员工的强烈不满。如何合理地配置客户部人员以及如何合理地鉴定员工的工作量成为该酒店所面临的两大难题。让我们来看看在人力…

【Linux】软件包管理器yum

目录 一、yum是什么&#xff1f; 二、查看软件包 三、安装与卸载软件 1、如何安装软件 2、如何卸载软件 四、yum源的配置 一、yum是什么&#xff1f; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人…

2024作品集流行封面设计技巧

本期不是关于如何安排作品集&#xff0c;而是关于目前国内市场上流行的作品集封面风格有哪些&#xff1f;如何实现&#xff1f;今天给大家带来了 5 种作品集设计风格&#xff0c;毛玻璃、弥散光、3D、插画、其他&#xff0c;一起往下看吧&#xff01; 毛玻璃 目前许多设计师都…

学习统一的Hyper - network用于多模态MR图像合成和缺失模态的肿瘤分割

Learning Unified Hyper-Network for Multi-Modal MR Image Synthesis and Tumor Segmentation With Missing Modalities Learning Unified Hyper-Network for Multi-Modal MR Image Synthesis and Tumor Segmentation With Missing Modalities背景贡献实验方法多模态合成方法超…

软件测试实战,Web项目网页bug定位详细分析总结(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、前置条件 1&a…

3.5日常学习

matlab处理数据 自己写了关于detect_data的函数&#xff0c;让它帮我改了&#xff0c;哈哈哈 %改正前function data_chuli(path1,savepath)[num]xlsread(path1,1,B18:F23);a num;ba;cb(:);xlswrite(savepath,c) end%改正后function data_chuli(path1, savepath)num xlsread…

05-调用API

上一篇&#xff1a; 04-JNI函数 调用 API 允许软件供应商将 Java VM 加载到任意本地应用程序中。供应商可以提供支持 Java 的应用程序&#xff0c;而无需链接 Java VM 源代码。 5.1 概述 下面的代码示例说明了如何使用调用 API 中的函数。在这个示例中&#xff0c;C 代码创建了…

鸿蒙NEXT开发实战:【视频文件裁剪】

使用OpenHarmony系统提供的ffmpeg三方库的能力在系统中实现了音视频文件裁剪的功能&#xff0c;并通过NAPI提供给上层应用调用。 基础信息 视频文件裁剪 简介 在OpenHarmony系统整个框架中有很多子系统&#xff0c;其中多媒体子系统是OpenHarmony比较重要的一个子系统&#…

selenium爬取空气质量数据

https://www.aqistudy.cn/ 爬取指定城市在指定时间范围内的空气质量数据&#xff0c;并将数据保存为CSV文件。它首先从两个文本文件中读取城市信息和代理IP信息&#xff0c;然后提示用户输入爬取的起始年份、结束年份、起始月份和结束月份。接下来&#xff0c;它启动了Chrome浏…

【Leetcode】3028.边界上的蚂蚁

题目描述 思路 题目中要求我们返回 蚂蚁返回到边界的次数。简单来想&#xff0c;就是蚂蚁原来的位置的一维坐标为0&#xff0c;然后经过&#xff0c;若干次移动&#xff0c;统计有几次坐标再次变为0的个数。 我们利用前缀和&#xff0c;像定义一个数组&#xff0c;算出前缀和数…

华为交换机vlan实验

一、目标 实现不同vlan之间的终端通信 二、命令学习 1.创建2个vlan # 进入系统视图 sy# 创建vlan vlan 10 vlan 202.查看vlan # 2.查看vlan display vlanThe total number of vlans is : 3 ---------------------------------------------------------------------------…

如何选择阿里云服务器配置?(CPU/内存/带宽/磁盘)

阿里云服务器配置怎么选择&#xff1f;CPU内存、公网带宽和系统盘怎么选择&#xff1f;个人开发者或中小企业选择轻量应用服务器、ECS经济型e实例&#xff0c;企业用户选择ECS通用算力型u1云服务器、ECS计算型c7、通用型g7云服务器&#xff0c;阿里云服务器网aliyunfuwuqi.com整…

Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

前言 本文罗列了了python零基础入门到精通的详细教程&#xff0c;内容均以知识目录的形式展开。 第一章&#xff1a;python基础之markdown Typora软件下载Typora基本使用Typora补充说明编程与编程语言计算机的本质计算机五大组成部分计算机三大核心硬件操作系统 第二章&…

米哈游排名首超腾讯,登顶榜首 !!!

米哈游排名首超腾讯&#xff0c;登顶榜首 &#xff01;&#xff01;&#xff01; 大家好&#xff0c;我是銘&#xff0c;全栈开发程序员。 近日&#xff0c;第三方机构 data.ai 公布 2023 年中国游戏厂商及应用出海收入 30 强。 其中米哈游超越腾讯&#xff0c;首次登顶年度…

SDM450核心板_高通SDM450安卓核心板模块性能参数

高通SDM450核心板是基于SDM450移动平台开发的一款高性能核心板。采用领先的14纳米技术&#xff0c;该核心板为高端智能设备提供了卓越的性能和优质的体验。板载2GB16GB的内存(可选配4GB32GB)&#xff0c;双 ISP(图像传感器处理器)支持丰富的照片细节和双摄像头体验&#xff0c;…

Android大厂高级面试题灵魂100问,知识点总结+面试题解析

前言 互联网创业从火热到“寒冷”&#xff0c;但有一件事一直没变&#xff0c;就是大家都觉得招聘不到程序员。优秀的程序员也觉得很难找到合适的岗位。 “2020年技术没有成长&#xff0c;我今年一定要好好努力学习&#xff01;” “在现在这个公司都工作了3年了&#xff0c;一…

Jmeter基础使用---Token鉴权接口关联

接口测试流程&#xff1a; 查看API接口文档&#xff0c;熟悉接口业务&#xff08;地址、端口、参数、鉴权、状态码&#xff09;设计接口测试用例&#xff08;正例&#xff1a;正确的结果&#xff1b;反例&#xff1a;鉴权异常、参数异常、兼容异常、其他异常&#xff09;使用接…

vulhub中ThinkPHP 2.x 任意代码执行漏洞复现

ThinkPHP 2.x版本中&#xff0c;使用preg_replace的/e模式匹配路由&#xff1a; $res preg_replace((\w).$depr.([^.$depr.\/])e, $var[\\\1\]"\\2";, implode($depr,$paths)); 导致用户的输入参数被插入双引号中执行&#xff0c;造成任意代码执行漏洞。 ThinkPH…