K8s容器debug高级技巧K8s容器debug高级技巧
使用 kubectl exec 执行指令
如果您在 Kubernetes 上运行软件,您会想要在某些时候去调试您所部署的软件的一些方面。对于习惯于使用虚拟机 (VMs) 的人来说能自然使用的一种简单的调试方法,就是连接到一个正在运行的 pod,然后进行解译:
kubectl e...[2023/12/11]
将 .NET Aspire 部署到 Kubernetes 集群
使用Aspirate可以将Aspire程序部署到Kubernetes 集群
工具安装
dotnet tool install -g aspirate --prerelease
注意:Aspirate 正在开发中,该软件包将作为预览版进行版本控制,--prelease 选项将获得最新的预览版...[2023/12/8]
使用 anasible 搭建一个多 master 多 worker 的 k8s 集群
使用 ansible 搭建一个多 master 多 worker 的 k8s 集群
kubernetes + istio 是目前最强大,也是最易于使用的服务网格方案。要使用kubernetes + istio, 首先要搭建 kubernets 集群。搭建kubernetes 集群的方式有很多,其...[2023/12/5]
StackGres 1.6 数据库平台工程功能介绍以及快速上手
StackGres 1.6 数据库平台工程功能
声明式 K8S CRs
StackGres operator 完全由 Kubernetes 自定义资源管理。除了 kubectl 或任何其他 Kubernetes API 访问之外,不需要安装任何客户端或其他工具来管理 StackGres。您的...[2023/12/1]
从物理机到K8S:应用系统部署方式的演进及其影响
公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。
概述
随着科技的进步,软件系统的部署架构也在不断演进,从以前传统的物理机到虚拟机、Docker和Kubernetes,我们经历了一系列变化。
这些技术的引入给我们带来了更高的资源利用率、更快的部署速度和更强...[2023/12/1]
Kubernetes 漫游:kube-scheduler
概述
什么是 kube-scheduler ?
Kubernetes 集群的核心组件之一,它负责为新创建的 Pods 分配节点。它根据多种因素进行决策,包括:
资源需求和限制:考虑每个 Pod 请求的资源量(如 CPU 和内存)以及节点上可用的资源。
亲和性和反亲和性规则:根据 Pod 的亲...[2023/11/29]
Kubernetes 中的服务注册与发现原理分析
公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。
对k8s有点了解技术人员,应该都只知道k8s是有服务注册发现的,今天就分析下这个原理,看看怎么实现的。
什么是服务注册与发现
服务注册与发现是一种机制,用于在集群中动态地发现和连接不同的服务,比如我们在开发微服...[2023/11/29]
kubernetes container device interface (CDI)
CDI 是什么?
Container Device Interface (CDI) 是一个提议的标准,它定义了如何在容器运行时环境中向容器提供设备。这个提议的目的是使得设备供应商能够更容易地将其设备集成到 Kubernetes 集群中,而不必修改 Kubernetes 核心代码。
CDI 插件...[2023/11/20]
k8s-服务网格实战-配置 Mesh(灰度发布)
在上一篇 k8s-服务网格实战-入门Istio中分享了如何安装部署 Istio,同时可以利用 Istio 实现 gRPC 的负载均衡。
今天我们更进一步,深入了解使用 Istio 的功能。
从 Istio 的流量模型中可以看出:Istio 支持管理集群的出入口请求(gateway),...[2023/11/8]
Kubernetes:kube-apiserver 和 etcd 的交互
kubernetes:kube-apiserver 系列文章:
Kubernetes:kube-apiserver 之 scheme(一)
Kubernetes:kube-apiserver 之 scheme(二)
Kubernetes:kube-apiserver 之启动流程(一)
Kub...[2023/11/6]
k8s-服务网格实战-入门Istio
背景
终于进入大家都比较感兴趣的服务网格系列了,在前面已经讲解了:
如何部署应用到 kubernetes
服务之间如何调用
如何通过域名访问我们的服务
如何使用 kubernetes 自带的配置 ConfigMap
基本上已经够我们开发一般规模的 web 应用了;但在企业中往往有着复杂...[2023/11/1]
Kubernetes:kube-apiserver 之启动流程(一)
0. 前言
前面两篇文章 Kubernetes:kube-apiserver 之 scheme(一) 和 Kubernetes:kube-apiserver 之 scheme(二) 重点介绍了 kube-apiserver 中的资源注册表 scheme。这里进入正题,开始介绍 kube-api...[2023/10/25]
client-go实战之九:手写一个kubernetes的controller
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本文是《client-go实战》系列的第九篇,前面咱们已经了解了client-go的基本功能,现在要来一次经典的综合实战了,接下来咱们会...[2023/10/23]
在 kubernetes 环境中实现 gRPC 负载均衡
前言
前段时间写过一篇 gRPC 的入门文章,在最后还留了一个坑没有填:
也就是 gRPC 的负载均衡问题,因为当时的业务请求量不算大,再加上公司没有对 Istio 这类服务网格比较熟悉的大牛,所以我们也就一直拖着没有解决,依然只是使用了 kubernetes 的 service 进行...[2023/10/19]
Kubernetes:kube-apiserver 之 scheme(一)
0. 前言
在进入 kube-apiserver 源码分析前,有一个非常重要的概念需要了解甚至熟悉的:资源注册表(scheme)。
Kubernetes 中一切皆资源,管理的是资源,创建、更新、删除的是资源。如何对庞杂的资源进行管理就成了一件大事。Kubernetes 通过引入 scheme...[2023/10/18]
Istio 入门(六):版本控制
目录VirtualService 和 DestinationRuleVirtualService 与 Service 的关系VirtualService 和 DestinationRule 的关系VirtualService 的定义DestinationRule 的定义
完整系统教程电子书阅...[2023/10/18]
client-go实战之八:更新资源时的冲突错误处理client-go实战之八:更新资源时的冲突错误处理
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本文是《client-go实战》系列的第七篇,来了解一个常见的错误:版本冲突,以及client-go官方推荐的处理方式
本篇由以下部分组...[2023/10/17]
DHorse v1.4.2 发布,基于 k8s 的发布平台
版本说明
优化特性
在集群列表增加集群版本;
修改Jvm的GC指标名;
解决问题
解决shell脚本换行符的问题;
解决部署历史列表页,环境名展示错误的问题;
解决指标收集功能的异常;
升级指南
升级指南
DHorse介绍
DHorse是一个简单易用的轻量级的云应用管理平台,不需要理解...[2023/10/17]
使用 Kubernetes 简化平台工程使用 Kubernetes 简化平台工程
平台工程在现代应用程序开发和部署中发挥的作用至关重要。随着软件应用程序变得越来越复杂和分散,对稳健且可扩展的基础设施的需求变得越来越重要。这就是平台工程的作用所在,它是支持整个软件开发生命周期的支柱。让我们深入探讨平台工程在创建和维护应用程序基础设施方面的重要作用。
了解平台工程...[2023/10/16]
软件开发人员 Kubernetes 入门指南|Part 2
在第 1 部分中,我们讲解了 Kubernetes 的核心组件,Kubernetes 是一种开源容器编排器,用于在分布式环境中部署和扩展应用程序;我们还讲解了如何在集群中部署一个简单的应用程序,然后更改其副本数量以扩大或缩小其规模。
在本文中,我们将为您深入讲解 Kuberne...[2023/10/13]
加密 K8s Secrets 的几种方案加密 K8s Secrets 的几种方案
前言
你可能已经听过很多遍这个不算秘密的秘密了--Kubernetes Secrets 不是加密的!Secret 的值是存储在 etcd 中的 base64 encoded(编码) 字符串。这意味着,任何可以访问你的集群的人,都可以轻松解码你的敏感数据。任何人?是的,几乎任何人都可以,尤其是在集...[2023/9/19]
五分钟k8s实战-使用Ingress
背景
前两章中我们将应用部署到了 k8s 中,同时不同的服务之间也可以通过 service 进行调用,现在还有一个步骤就是将我们的应用暴露到公网,并提供域名的访问。
这一步类似于我们以前配置 Nginx 和绑定域名,提供这个能力的服务在 k8s 中成为 Ingre 。
通过这个描述其实也...[2023/9/15]
五分钟 k8s入门到实战--跨服务调用
背景
在做传统业务开发的时候,当我们的服务提供方有多个实例时,往往我们需要将对方的服务列表保存在本地,然后采用一定的算法进行调用;当服务提供方的列表变化时还得及时通知调用方。
student:
url:
- 192.168.1.1:8081
- 1...[2023/9/9]
从软件工程师角度聊聊 Kubernetes
作为软件工程师,我们应该熟悉 K8s,尽管它有点像 DevOps,但它能让我们更好地了解幕后发生的事情,让我们与部署工作更密切相关,更有责任感。本文将从软件工程师的角度探讨 Kubernetes (K8s),我们将介绍其动机、原理和核心组件,助力于开发者们提升 Kubernetes 的专业知识水...[2023/9/9]
k8s实战案例之运行WordPress - Linux-1874k8s实战案例之运行WordPress - Linux-1874
1、WordPre 架构
LNMP案例之基于Nginx+PHP实现WordPre 博客站点,要求Nginx+PHP运?在同?个Pod的不同容器;nginx主要作用是接入站点请求,如果请求静态资源nginx就直接响应;如果请求的是一个动态php资源,就将对应请求转发给另一个php容器进行处理...[2023/8/21]
[kubernetes]二进制部署k8s集群-基于containerd
0. 前言
k8s从1.24版本开始不再直接支持docker,但可以自行调整相关配置,实现1.24版本后的k8s还能调用docker。其实docker自身也是调用containerd,与其k8s通过docker再调用containerd,不如k8s直接调用containerd,以减少性能损耗。
...[2023/8/18]
Cilium系列-12-启用 Pod 的 BBR 拥塞控制Cilium系列-12-启用 Pod 的 BBR 拥塞控制
系列文章
Cilium 系列文章
前言
将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于:
启用本地路由(Nati...[2023/8/4]
K8S | Service服务发现
服务发现与负载均衡。
一、背景
在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;
对于测试「Tes」环境或者生产「Pro」环境,出于安全或者环境隔离性来考虑,在正常情况下只会开放网关服务,而「...[2023/8/4]
【Azure K8S | AKS】在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例
问题描述
在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例
问题解答
在Azure Kubernetes Service(AKS)的官方网站中,关于存储的选项介绍中,并没有具体的yaml实例来创建PV, ...[2023/8/4]
K8S | Config应用配置K8S | Config应用配置
绕不开的Config配置;
一、背景
在自动化流程中,对于一个应用来说,从开发阶段的配置管理,到制作容器镜像,再到最后通过K8S集群发布为服务,整个过程涉及到的配置非常多;
应用环境:通常是指代码层面的依赖配置,以常用的Nacos来说,通常会涉及框架、组件、自定义等几个层面的配置管理...[2023/8/4]
Gin+Xterm.js实现远程Kubernetes Pod(一)
Xterm.js简介
xterm.js (https: xtermjs.org/)是一个开源的 JavaScript 库,它模拟了一个终端接口,可以在网页中嵌入一个完全功能的终端。这个库非常灵活,并且具有很多定制选项和插件系统。
下面是一些使用 xterm.js 的基本步骤:
首先,需要...[2023/8/2]
Kubernetes: Kubectl 源码分析
0. 前言
kubectl 看了也有一段时间,期间写了两篇设计模式的文章,是时候对 kubectl 做个回顾了。
1. kubectl 入口:Cobra
kubectl 是 kubernetes 的命令行工具,通过 kubectl 实现资源的增删改查。kubectl 通过 client-go...[2023/8/2]
DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CI/CD解决方案DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CI/CD解决方案
目录一.系统环境二.前言三.DevOps简介四.CI/CD简介五.安装并配置docker参数六.使用registry搭建镜像仓库七.安装部署gitlab代码仓库7.1 创建gitlab容器7.2 修改gitlab容器配置文件7.3 访问gitlab web界面7.4 创建项目7.5 创建Git版...[2023/7/26]
Kubernetes亲和性学习笔记
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本文是欣宸在学习Kubernetes调度器的过程中,对亲和性相关知识点的整理和总结,这是一篇笔记性质的博客
kubernetes默认调...[2023/7/21]
Centos7 安装部署 Kubernetes(k8s) 高可用集群
目录一.系统环境二.前言三.Kubernetes(k8s)高可用简介四.配置机器基本环境五.部署haproxy负载均衡器六.部署etcd集群七.部署Kubernetes(k8s) master HA7.1 配置docker7.2 安装kubelet,kubeadm,kubectl7.3 kube...[2023/7/21]
Cilium系列-1-Cilium特色 功能及适用场景Cilium系列-1-Cilium特色 功能及适用场景
系列文章
Cilium 系列文章
Cilium 简介
Cilium 是一个开源的云原生解决方案,用于提供、保护(安全功能)和观察(监控功能)工作负载之间的网络连接,由革命性的内核技术 eBPF 提供动力。Cilium 主要使用场景是在 Kubernetes中,但 Cilium 的优势并不仅限...[2023/7/21]
sshpiper 在 Kubernetes 上的应用
hpiper 在 Kubernetes 上的应用
介绍
GitHub Repo
一个反向代理目标服务器的 proxy,客户端想请求某个 h 服务器,直接请求的是 hpiper 服务,再经由 hpiper 服务转发到对应的 h 服务器,相当于一个中间人。
一开始并不理解这种组件的用处...[2023/7/17]
Centos7 升级 Kubernetes(k8s) 集群
目录一.系统环境二.前言三.Kubernetes(k8s) 集群升级简介四.升级master主节点4.1 升级kubeadm4.2 升级各个组件4.3 升级 kubelet 和 kubectl五.升级worker工作节点5.1 升级kubeadm5.2 升级kubelet和kubectl六.总结...[2023/7/12]
Kubernetes(k8s)访问控制:权限管理之RBAC鉴权
目录一.系统环境二.前言三.Kubernetes访问控制四.鉴权简介五.配置客户端机器六.设置k8s集群允许所有请求访问七.设置k8s集群拒绝所有请求访问八.RBAC授权8.1 role,rolebinding8.1.1 给test用户授予对pod的get和list权限8.1.2 增加对pod的...[2023/6/26]
Kubernetes(k8s)访问控制:身份认证
目录一.系统环境二.前言三.Kubernetes访问控制四.身份认证简介五.身份认证5.1 配置客户端机器5.2 使用base auth的方式进行认证5.3 使用token的方式进行认证5.4 使用管理员的kubeconfig文件进行认证5.5 使用自定义的kubeconfig文件进行认证5.5...[2023/6/21]
Kubernetes(k8s)网络策略NetworkPolicyKubernetes(k8s)网络策略NetworkPolicy
目录一.系统环境二.前言三.网络策略(NetworkPolicy)简介四.创建pod和svc五.没有网络策略的条件下访问pod六.给pod添加网络策略6.1 入站网络策略6.1.1 入站网络策略-pod标签选择器6.1.2 入站网络策略-namespaceSelector命名空间选择器6.1.3...[2023/6/14]
Kubernetes(k8s)使用ingress发布服务
目录一.系统环境二.前言三.Kubernetes ingre 简介四.Ingre vs NodePort vs LoadBalancer五.安装部署Nginx Ingre Controller控制器六.使用Ingre 来发布Kubernetes服务6.1 创建3个pod6.2 配置ingre...[2023/6/7]
Kubernetes(k8s)一次性任务:Job
目录一.系统环境二.前言三.Kubernetes Job简介四.创建一次性任务job4.1 创建一个简单任务的job4.2 创建需要执行多次的job任务五.测试job失败重试次数六.job任务使用示例:计算圆周率七.总结
一.系统环境
本文主要基于Kubernetes1.21.9和Linux...[2023/6/2]
一步步教你如何搭建K8S集群 - M-Anonymous
一、环境配置
三台CentOS7虚拟机,默认配置,内存2GB、处理器2核心。
先更新下系统
1 sudo yum update
2 sudo yum upgrade
二、安装并启动 docker
1 yum -y install wget
2 wget https: mirrors....[2023/5/30]
Kubernetes GoRoutineMap工具包代码详解Kubernetes GoRoutineMap工具包代码详解
1、概述
GoRoutineMap 定义了一种类型,可以运行具有名称的 goroutine 并跟踪它们的状态。它防止创建具有相同名称的多个goroutine,并且在上一个具有该名称的 goroutine 完成后的一段退避时间内可能阻止重新创建 goroutine。
使用GoRoutineMap...[2023/5/29]
Kubernetes 研究笔记
Kubernetes 研究笔记
在接下来的这篇笔记中,我将会介绍 Kubernetes 这一强大的容器编排工具,并学习其基本使用方法。该笔记将会被存储在https: github.com/owlman tudy_note项目的Software/Container目录下一个名为的K8s子目录中。其...[2023/5/29]
Kubernetes 证书详解
K8S 证书介绍
在 Kube-apiserver 中提供了很多认证方式,其中最常用的就是 TLS 认证,当然也有 BootstrapToken,BasicAuth 认证等,只要有一个认证通过,那么 Kube-apiserver 即认为认证通过。下面就主要讲解 TLS 认证。
如果你是使用 k...[2023/5/26]
KubeCon EU 2023 落幕,哪些技术趋势值得关注?
KubeCon+CloudNativeCon 是云原生领域的技术盛会,上个月月末,在荷兰阿姆斯特丹举办的欧洲 KubeCon+CloudNativeCon 刚刚落下帷幕,此次大会吸引了10000多名参会者以及200多家企业,其中58%的参会者是首次参会。这不仅反映了云原生领域在蓬勃发展,也体现出...[2023/5/15]
案例分享-full gc导致k8s pod重启
在之前的记一次k8s pod频繁重启的优化之旅中分享过对于pod频繁重启的一些案例,最近又遇到一例,继续分享出来希望能给大家带来些许收获。
问题现象
报警群里突然显示某pod频繁重启,我随即上去查看日志,主要分这么几步:
1.查看pod重启的原因,k...[2023/5/4]
6个优化策略,助你降低K8S成本6个优化策略,助你降低K8S成本
Kubernetes 早已成为容器编排引擎的事实标准,而随着 Kubernetes 环境的复杂性持续增长,成本也在不断攀升。CNCF 发布的调查报告《Kubernetes 的 FinOps》显示,68%的受访者表示 Kubernetes 开销正在上涨,并且一半的人所在的组织经历了每年超过20%的...[2023/4/28]