k8s
文章平均质量分 84
深山猿
不断进化的深山猿
展开
-
预发布相关技术方案与梳理
后端:前端根据用户访问的域名知道当前的环境,预发布环境中添加header后访问后端接口,后端通过header将对应环境的请求路由到对应的环境。需要梳理预发布和线上哪些资源是需要隔离的,确认mysql、nas、oss等存储不隔离,但分支、redis(可以通过)、mq、naocs需要隔离。2)面对线上环境的问题,研发有更多的时间进行解决,相关方案也会更加完备,避免解决一个问题同时带来另一个问题。1)让测试老师有更多时间在线上环境验证问题,能提前暴露部分线上问题,进而提升用户的体验,原创 2023-03-27 17:38:42 · 534 阅读 · 0 评论 -
ingress与gateway https秘钥配置
该类型的Service被提交后,Kubernetes 就会调用 CloudProvider 在公有云上为你创建一个负载均衡服务,并且把被代理的 Pod 的 IP 地址配置给负载均衡服务做后端。所以:isito的ingress和gateway对应的pod是一样的,所以ingress对应的pod的功能主要就是从公网接收请求转到isito内部的gateway。然后vs再引用gateway,gateway将请求分发到不同的vs,vs层再将请求分发到k8s的service,最后到具体的pod。原创 2022-10-26 09:03:28 · 1560 阅读 · 0 评论 -
pod的内存一直增加原因与解决
channel内存配置:6G-8G容器内top的结果:阿里云memory使用量:https://www.jianshu.com/p/c0d5a40fe9e8channel内存告警的原因:channel负责评测文件的读取,这个是频繁的操作。Linux下经常会遇到buff/cache内存占用过多问题,尤其是使用云主机的时候最严重,由于很多是虚拟内存,因此如果buff/cache占用过大的,free空闲内存就很少,影响使用;通常内存关系是:普通机器:t...原创 2022-02-07 13:58:51 · 14336 阅读 · 0 评论 -
k8s oom告警解决记录
oom告警问题背景:容器中执行运行和评测,如存在如下代码:#include <stdio.h>#include <malloc.h>#include <string.h>#include <unistd.h>int main (){ char *p = NULL; int count = 1; int n = 1024*1024*100; while(1){ p = (char *)malloc...原创 2021-11-09 14:18:11 · 3509 阅读 · 0 评论 -
k8s命令汇总
kubuctl修改当前命名空间kubectl config set-context $(kubectl config current-context) --namespace=peiyou-xiaohoucode事件相关kubectl get events -A // 获取命名空间所有kubectl describe deployment coding-judge-judge-test // 获取某个deployment的详情,包括事件资源创建kubectl create -f my-se.原创 2021-09-27 17:16:26 · 528 阅读 · 1 评论 -
容器化问题:优雅停机、spring探针配置、websocket关闭变慢
问题1: 服务发版等导致的服务间接性不可用问题原因1:请求需要10s完成,但是服务所在pod在第8秒被干掉解决:设置preStop和延迟销毁pod, sleep时间要小于terminationGracePeriodSeconds.且sleep之后不会再有请求进入该pod imagePullPolicy: Always lifecycle: preStop: exec: comm...原创 2021-09-16 16:38:44 · 569 阅读 · 0 评论 -
服务容器化踩坑
upstream connect error or disconnect/reset before headers. reset reason: connection failure通过istio访问容器内服务:https://test-practice.xiaohoucode.com/api/practice/platform/project/X1503upstream connect error or disconnect/reset before headers. reset reason:原创 2021-07-15 19:47:16 · 5027 阅读 · 0 评论 -
k8s分享下-service 网络 卷
service为什么需要Service?因为直接通过pod的IP+port获取服务存在如下两个问题:1)调用地址不稳定,pod可能出现故障,那么新的pod产生的IP和port都会发生变化2)集群(多pod实例)场景无法自动实现负载均衡service怎么解决的问题?service本身有固定的Ip和port,且内部有负载均衡的实现,所以解决了上述问题service的实例和创建一个提供Web服务的RC:webapp-rc.yamlapiVersion: v1kind: Replicati原创 2021-07-12 10:12:19 · 890 阅读 · 0 评论 -
k8s存储器
pod容器共享Volume同一个pod中的多个容器能够共享Pod级别的存储卷Volume。即定义一个卷,然后将该卷挂在为多个容器的内部目录。如下pod实例,pod-volume.yml内容如下:apiVersion: v1kind: Podmetadata:name: volume-podspec:containers:- name: tomcat image: tomcat ports: - containerPort: 8080 volumeMounts: -...原创 2021-07-03 17:53:05 · 257 阅读 · 0 评论 -
k8s控制器 详解statefulSet
无状态与有状态的应用:无状态应用:应用的所有 Pod,是完全一样的。所以,它们互相之间没有顺序,也无所谓运行在哪台宿主机上。有状态的应用:分布式应用,它的多个实例之间,往往有依赖关系,比如:主从关系、主备关系。还有就是数据存储类应用,它的多个实例,往往都会在本地磁盘上保存一份数据。而这些实例一旦被杀掉,即便重建出来,实例与数据之间的对应关系也已经丢失,从而导致应用失败。k8s有了新的控制器:StatefulSet应用状态被抽象为两类:1拓扑状态应用的多个实例之间不是完全对等的关系。这原创 2021-07-03 17:48:39 · 2409 阅读 · 0 评论 -
k8s六:k8s运维指南
5.1 k8s集群管理指南主要包括:node管理 label管理 namespace资源共享 资源配额管理 集群master高可用 集群监控等5.1.1 node的隔离与恢复如果某些node需要进行硬件升级、维护等,需要将某些node进行隔离与恢复,有如下三种方法:方式一: 通过node的yaml文件修改node的状态1)定义配置文件如下:unsechedule_node.yamlapiVersion: v1kind: Nodemetadata:name: k8s-node-1la..原创 2021-03-12 17:40:43 · 1958 阅读 · 2 评论 -
k8s五: 深入理解Service
为什么需要Service?因为直接通过pod的IP+port获取服务存在如下两个问题:1)调用地址不稳定,pod可能出现故障,那么新的pod产生的IP和port都会发生变化2)集群(多实例)场景无法自动实现负载均衡service怎么解决的问题?service本身有固定的Ip和port,且内部有负载均衡的实现,所以解决了上述问题service的实例和创建一个提供Web服务的RC:webapp-rc.yamlapiVersion: v1kind: ReplicationController原创 2021-03-12 17:31:33 · 718 阅读 · 2 评论 -
k8s四:深入理解Pod
pod、容器和service的关系pod与容器是包含关系,通常一个pod包含了多个容器,在pod对应的定义文件中会有具体的定义。pod本质上是一个最小部署单元,不是一个程序/进程,是一个环境,包括容器\存储、网络ip:port为什么有了pod还要有service?pod是临时性的,当pod中的进程结束、node故障、资源短缺时,pod都有可能被干掉,即pod的ip:port也是动态变化的,所以不能作为服务提供方。service会被分配一个固定的集群ip2.3.1 pod的定义详解https:/原创 2021-03-12 16:59:54 · 2651 阅读 · 1 评论 -
k8s三:k8s安装与kubectl指令
2.1 k8s的安装与配置2.1.1 准备工作以centOs为例查看Linux系统版本的命令1、cat /etc/issue,此命令也适用于所有的Linux发行版。 [root@S-CentOS home]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m2、cat /etc/redhat-release,这种方法只适合Redhat系的Linux: [root@S-CentOS home]# cat /et原创 2021-03-12 15:05:30 · 550 阅读 · 1 评论 -
k8s二:资源初步介绍
k8s的管理角色master负责整个集群的管理和控制,基本上k8s的所有控制命令都由它来执行。通常占据一个(高可用是3个)独立的服务器,因为其很重要,并且会启动一个etcd服务,用于存储k8s的资源对象数据。master节点上的关键进程:kube-apiserver:k8s中资源的增删改查的唯一入口,也是集群控制的入口进程。kube-controller-manager:k8s中资源对象的自动化控制中心kube-schedular:负责资源调度的进程nodek8s集群中的工作负载节点,每原创 2021-03-12 14:38:32 · 9121 阅读 · 0 评论 -
k8s概念入门与实例
了解:一切以服务为中心,一切围绕服务运转。k8s可以自我扩展、自我诊断与维护,容易升级与扩容。1.1 kubernetes入门完备的分布式系统支撑平台,完备的集群管理能力;包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、内建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制、以及多粒度的资源配额管理能力。同时拥有开发、测试、部署、运维监控各环节的管理工具。简单了解k8s中的几个概念服务(Service)1)拥有原创 2021-03-12 14:32:16 · 1033 阅读 · 1 评论