.net core i上 K8S(四).netcore程序的pod管理,重启策略与健康检查

上一章我们已经通过yaml文件将.netcore程序跑起来了,但还有一下细节问题可以分享给大家。

1.pod管理

1.1创建pod
kubectl create -f netcore-pod.yaml

我们创建一个netcore-pod.yaml文件,内容如下:

apiVersion: v1
kind: Pod          #指明类型
metadata:
  name: netcore-pod
  labels:
    app: netcorepod
spec:
  containers:
  - name: netcorepod
    image: chenyishi/webdocker_s_provider
    ports:
    - containerPort: 1000
    env:
    - name: serverport
      value: "1000"
1.2查看pod是否创建成功

1.3查看pod描述

1.4替换pod

先修改netcore-pod.yaml,name改成netcorepod1

再执行替换命令

kubectl replace -f netcore-pod.yaml --force

我们可以看到,是先删除旧的,再替换的。

1.5删除pod
 kubectl delete -f netcore-pod.yaml

2.重启策略

k8s有三种重启策略Always(总是重启,默认),OnFailue(错误时重启),Never(从不),下面我们来修改netcore-pod.yaml配置

apiVersion: v1
kind: Pod
metadata:
  name: netcore-pod
  labels:
    app: netcorepod
spec:
  containers:
  - name: netcorepod
    image: chenyishi/webdocker_s_provider
    ports:
    - containerPort: 1000
    env:
    - name: serverport
      value: "1000"
  restartPolicy: OnFailure      #策略

然后create

kubectl create -f netcore-pod.yaml  

我们手动制造一个异常,去Node节点查询并kill掉进程dotnet

kill -9 82043

然后回到master节点,查看pod信息

我们可以看到重启次数已经从0变成1了,说明我门的重启策略发挥作用了,大家可以多kill几次,这个数字会递增。另外两种策略大家也可以试一下

3.健康检查

k8s为我们提供了对pod的健康检查,我们可以查看一下支持哪些

这里我们使用httpGet测试一下,修改配置如下

我们使用一个存在的接口/api/values/1测试,创建pod,并查看信息

策略已生效,我们重新修改一下,改成一个不存在的接口

然后replace掉旧的

然后查看信息

我们发现已经出发了健康检查策略,在不停重启,restart count再增加,Events事件信息也在增加。

4.进入容器

kubectl exec pod/netcore-pod -it bash

至此,我们.netcore程序的pod管理,重启策略与健康检查分享完了。

原文地址:https://www.cnblogs.com/chenyishi/p/10111368.html

时间: 2024-11-05 20:46:05

.net core i上 K8S(四).netcore程序的pod管理,重启策略与健康检查的相关文章

.net core i上 K8S(七).netcore程序的服务发现

上一章我们分享了k8s的网络代理模式,今天我们来分享一下k8s中的服务发现. 1.环境变量模式的服务发现 k8s默认为我们提供了通过环境变量来实现服务发现的功能,前提是 1.需要service在pod之前创建 2.适用于同一命名空间 1.1创建service [[email protected] ~]# cat netcore-service.yaml apiVersion: v1 kind: Service metadata: name: netcore-service labels: app

.net core i上 K8S(三)Yaml文件运行.netcore程序

上一章我们通过kubectl run简单运行了一个.netcore网站,但实际的开发中,我们都是通过yaml来实现的. 1.编写yaml文件 关于yaml文件的格式在此就不多描述了,不熟悉的可以去网上搜一下示例. apiVersion: apps/v1beta2 #指定版本,支持的版本可以通过kubectl api-versions查询 kind: Deployment #指定类型,这一次我们要创建一个Deployment metadata: #元数据 name: cys-netcore #de

.net core i上 K8S(一)集群搭建

1.前言 以前搭建集群都是使用nginx反向代理,但现在我们有了更好的选择——K8S.我不打算一上来就讲K8S的知识点,因为知识点还是比较多,我打算先从搭建K8S集群讲起,我也是在搭建集群的过程中熟悉了K8S的一些概念,希望对大家有所帮助.K8S集群的搭建难度适中,网上有很多搭建k8s的教程,我搭建的过程中或多或少遇到一些问题,现在就把我总结完的教程给大家总结一下.这里主要讲通过二进制包安装K8S 2.集群组件介绍 节点 ip 组件 master 192.168.8.201 etcd:存储集群节

ASP.NET Core之跨平台的实时性能监控(2.健康检查)

前言 上篇我们讲了如何使用App Metrics 做一个简单的APM监控,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core之跨平台的实时性能监控 首先我们来了解一下什么是健康检查(health checks)? 1.什么是健康检查? 健康检查,其实这个名称已经很明确了,它是检查你的应用程序是否健康运行的一种方式.随着当前各类项目越来越多的应用程序正在转向微服务式架构,健康检查就变得尤为关键.虽然微服务体系结构具有许多好处,但其中一个缺

容器HEALTHCHECK指令对接ASP.NET Core健康检查能力

 写在前面 HealthCheck 不仅是对应用程序内运行情况.数据流通情况进行检查, 还包括应用程序对外部服务或依赖资源的健康检查. 健康检查通常是以暴露应用程序的HTTP端点的形式 实施,可用于配置健康探测的的场景有 : 容器或负载均衡时 探测应用的状态, 例如:容器探测到应用unhealthy可 终止后续的滚动部署或者重启容器:负载均衡器探测到实例healthyunt能将请求路由到健康的运行实例. 对应用程序种依赖的第三方服务进行健康探测,比如redis.database.外部服务接口 内

k8s探测机制之pod健康检查

一:需求来源: 首先来看一下,整个需求的来源:当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强: 1,首先是提高应用的可观测性:2,第二是提高应用的可恢复能力. 从可观测性上来讲,可以在三个方面来去做增强: 1,首先是应用的健康状态上面,可以实时地进行观测:2,第二个是可以获取应用的资源使用情况:3,第三个是可以拿到应用的实时日志,进行问题的诊断与分析. 当出现了问题之后,首先要做的事情是要降低影响的范围,进行问题的调试与诊断.最后

k8s自主式pod之应用策略规则

自主式pod应用 我们接触的pod大多数是控制器控制的pod,那么今天讲的是自主式pod(也就是由yaml文件来创建的pod),也就是pod自己去控制自己,防止pod被控制器杀死. 1,首先我们来创建一个nginx的pod资源对象: 在创建pod之前,我们来查看一下镜像的下载策略: [[email protected] yaml]# kubectl explain pod.spec.containers 查看imagePullpolicy的策略字段: imagePullPolicy <strin

从认证到调度,K8s 集群上运行的小程序到底经历了什么?

作者 | 声东? 阿里云售后技术专家 导读:不知道大家有没有意识到一个现实:大部分时候,我们已经不像以前一样,通过命令行,或者可视窗口来使用一个系统了. 前言 现在我们上微博.或者网购,操作的其实不是眼前这台设备,而是一个又一个集群.通常,这样的集群拥有成百上千个节点,每个节点是一台物理机或虚拟机.集群一般远离用户,坐落在数据中心.为了让这些节点互相协作,对外提供一致且高效的服务,集群需要操作系统.Kubernetes 就是这样的操作系统. 比较 Kubernetes 和单机操作系统,Kuber

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 master 服务器的组件有:kube-apiserver.kube-controller-manager.kube-scheduler 因此需要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGE