![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kubernetes
文章平均质量分 71
云原生容器编排技术
Cloud孙文波
不忘初心,方得始终
展开
-
k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案【建议收藏】
Ant系列GPU支持 NvLink & NvSwitch,若您使用多GPU卡的机型,需额外安装与驱动版本对应的nvidia-fabricmanager服务使GPU卡间能够互联,否则可能无法正常使用GPU实例。【摘要】 Nvidia A系列裸金属服务器安装NVIDIA和CUDA驱动,安装conda和pytorch2.0并验证cuda的有效性。选择安装环境相关版本: GPU驱动版本为530.30.02、CUDA版本为12.1.0。原创 2024-06-22 15:32:22 · 1256 阅读 · 0 评论 -
Calico IPIP和BGP TOR的数据包走向
Calico 通过一个巧妙的方法将 workload 的所有流量引导到一个特殊的网关 169.254.1.1,从而引流到主机的 calixxx 网络设备上,最终将二三层流量全部转换成三层流量来转发。在主机上通过开启代理 ARP 功能来实现 ARP 应答,使得 ARP 广播被抑制在主机上,抑制了广播风暴,也不会有 ARP 表膨胀的问题。发送arp request的接口与接收arp request的接口不能是相同,即容器中的默认网关不能是calico的虚拟网关。宿主机的arp代理得打开。原创 2024-04-04 23:46:52 · 699 阅读 · 0 评论 -
k8s CNI Calico 网络模式总结【建议收藏】
IP in IP 使用 20 字节标头,IPv4 VXLAN 使用 50 字节标头,IPv6 VXLAN 使用 70 字节标头,IPv4 WireGuard 使用60 字节标头,IPv6 WireGuard 使用 80 字节标头。全网格非常适合 100 个或更少节点的中小型部署,但在规模明显更大时,全网格的效率会降低,我们建议使用路由反射器。备注: IBGP & EBGP 结合使用,集群大于100个节点以后使用TOR模式可以带来很好的性能。原创 2024-04-02 20:22:30 · 1329 阅读 · 0 评论 -
k8s Sidecar filebeat 收集容器中的trace日志和app日志
将容器中服务的trace日志和应用日志收集到KAFKA,需要注意的是 trace 日志和app 日志需要存放在中。分别为APP_TOPIC和TRACE_TOPIC。原创 2024-01-31 16:00:56 · 848 阅读 · 0 评论 -
ingres nginx 反向代理常见配置(持续更新)
当请求到达nginx时,nginx会将/v1/chat/create 这段url反向代理访问后端的节点。假设我的请求是https://xxx.xxx.com/im_chat/v1/chat/create。可以看到 proxy_pass http://chatbot_flask/;如果想实现访问的url 匹配到的location,不携带给后端服务。的,这代表反向代理给后端的upstream节点不携带。类似nginx的配置如下。原创 2024-01-30 17:03:27 · 1205 阅读 · 0 评论 -
ingress nginx配置说明
【代码】ingress nginx配置说明(持续更新)原创 2023-12-29 11:57:48 · 1140 阅读 · 0 评论 -
监控k8s controller和scheduler,创建serviceMonitor以及Rules
直接上干货。原创 2023-12-19 14:42:21 · 970 阅读 · 0 评论 -
Helm 安装prometheus-stack 使用local pv持久化存储数据
注:正常pv的状态是Available,因为还有没有创建pvc,下面展示是我部署后的结果,可以看到prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0 绑定了prometheus-pv,至于这个pvc是怎么来的下面会介绍。影响业务:业务数据和监控数据进行隔离,原则上我们可以允许监控数据丢失,但是业务数据一定是不能丢失的。一个正常运行的集群,集群版本最好 >= 1.21,原创 2023-07-13 17:02:43 · 2019 阅读 · 0 评论 -
coreDNS 常见问题及优化方案
因为我们的Deployment默认使用的dnsPolicy策略为ClusterFirstWithHostNet,这种模式会优先走集群内部的coredns解析,如果coredns无法解析就会通过coredns的配置文件 forward 到宿主机的/etc/resolv.conf文件使用nameserver dns。我们宿主机的dns是自建的,我们的dns只做内网域名的解析,公网域名都会forward到公有云的DNS服务器。1)可以修改为10s或者5s这样可以减少一些业务流量的损失,但是没有解决本质的问题。原创 2023-06-08 10:50:55 · 3075 阅读 · 0 评论 -
NodeLocal DNS介绍及部署应用
NodeLocal DNSCache通过在集群节点上运行一个 DaemonSet 来提高 clusterDNS 性能和可靠性。处于ClusterFirst的 DNS 模式下的 Pod 可以连接到kube-dns的 serviceIP 进行 DNS 查询。通过kube-proxy组件添加的iptables规则将其转换为CoreDNS端点。通过在每个集群节点上运行 DNS 缓存,NodeLocal DNSCache 可以缩短 DNS 查找的延迟时间、使 DNS 查找时间更加一致,以及减少原创 2023-06-09 13:54:47 · 2367 阅读 · 0 评论 -
helm 安装ingress nginx 4.5.2
ingress-nginx-4.5.2.tgz:ingress nginx安装包。helm-v3.11.1-linux-amd64.tar.gz: helm 工具。绑定hosts进行访问测试。修改values文件。原创 2023-03-06 13:09:40 · 997 阅读 · 0 评论 -
k8s 老集群二进制 ca证书过期解决过程
修改.kube/config文件中的certificate-authority-data 字段内容。3. 更新.kube/config 文件(如果有多个master的话,每个节点都需要替换)查看/etc/kubernetes/ssl/ca.pem 有效期。4. 重启etcd和kube-apiserver (必须重启)得到ca.pem证书base64编码后的内容。1. 备份原来的配置文件及证书。2. 重新颁发ca证书。原创 2023-02-28 13:36:26 · 1256 阅读 · 0 评论 -
kubeadm 部署kubernetes 1.26.1集群 Calico BGP ToR配置
完成内核升级、系统配置、部署容器运行时Containerd、安装crictl客户端命令、安装 kubeadm、kubelet 和 kubectl。备注:coredns Pending、节点NotReady 是因为没有安装CNI插件,下面步骤进行安装calico CNI讲述。由于使用了Calico ToR 网络模式每次新加入的节点都要修改calico node节点as number号。kubelet需要指定 --container-runtime-endpoint=检查BGP 连接状态。原创 2023-02-25 15:13:24 · 2392 阅读 · 0 评论 -
kubernetes 1.26.1 Etcd部署(外接)保姆级教程
保姆级部署文档原创 2023-02-25 14:43:00 · 2260 阅读 · 0 评论 -
k8s集群监控指标及告警阀值大全【超级详细,全是干货,直接粘贴复制】
满满的全是干货,直接拿走不用谢原创 2022-10-24 11:11:02 · 1793 阅读 · 0 评论 -
k8s ingress-nginx 支持PHP
【代码】k8s ingress-nginx 支持PHP。原创 2022-10-18 10:41:19 · 869 阅读 · 0 评论 -
calico IPPOOL
提示:以下配置都要确认calico的类型是“calico-ipam” cat /etc/cni/net.d/10-calico.conflist "ipam": { "type": "calico-ipam" }, 一、IPPool配置全局配置不区分某一个namespace apiVersion: projectcalico.org/v3原创 2022-05-22 23:31:00 · 2527 阅读 · 0 评论 -
k8s 加入新的master节点【看这篇文章不走弯路】
两种方法:1.生成初始化kubeadm-config文件:kubeadm config print init-defaults > kubeadm-config.yaml修改如下advertiseAddress:为master的IP(不是vip)将CoreDNS部分注释掉如下图master1执行kubeadm init phase upload-certs --upload-certs --config kubeadm-config.yaml将获取到certifi原创 2022-05-17 00:01:37 · 3341 阅读 · 0 评论 -
k8s组件监控指标
Counter(计数器): Counter 类型代表一个累积的指标数据,其单调递增,只增不减。在应用场景中,像是请求次数、错误数量等等,就非常适合用 Counter 来做指标类型,另外 Counter 类型,只有在被采集端重新启动时才会归零。 Gauge(仪表盘):Gauge 类型代表一个可以任意变化的指标数据,其可增可减。在应用场景中,像是 Go 应用程序运行时的Goroutine 的数量就可以用该类型来表示,在系统中统计 CPU、Memory 等等时很常见,而在业务场景中,业务队列的数量.原创 2022-03-11 17:31:58 · 3710 阅读 · 0 评论 -
k8s pod的常见状态
常用命令排查过程常用的命名如下:查看 Pod 状态:kubectl get pod <pod-name> -o wide 查看 Pod 的 yaml 配置:kubectl get pod <pod-name> -o yaml 查看 Pod 事件:kubectl describe pod <pod-name> 查看容器日志:kubectl logs <pod-name> [-c <container-name>]Pod 状态...原创 2021-11-20 18:26:12 · 307 阅读 · 0 评论 -
k8s Liveness probe failed: bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
k8s启动服务后报错如下图解决方法:重新生成配置localedef -v -c -i en_US -f UTF-8 en_US.UTF-8查看系统当前支持的locale定义locale -a原创 2021-10-13 21:33:57 · 432 阅读 · 0 评论 -
ingress支持https kube-dashboard
部署dashboard的内容就不写了,网上资料一堆一堆的,直接上干货1. 创建secrets https证书文件描述:这个*.key *.crt就是注册域名需要购买的证书。阿里云也可以申请免费证书,有效期影响中应该是一年。需要注意的是,需要将该secrets 创建到对应的namespace下。 kubectl create secret tls ingress-secret --key ./k8s-ingress-key --cert ./k8s-ingress.crt -n .原创 2021-09-22 10:31:04 · 344 阅读 · 0 评论 -
k8s pod 网络与idc kafka集群网络不通故障解决
背景:使用百度云云主机搭建的k8s集群,上面跑着公司的爬虫服务,开发发布新版本结束后,发现服务一直连接kafka集群在重试。网络环境:使用百度云vpc专线连接至我们自己的IDC机房网络,从而使pod网络和IDC机房网络打通问题发现:排查思路:1.首先我们进该集群的pod中,发现ping kafka域名可以解析到ip但是确不通,但是可以看的出来DNS是没有问题的。可以正常解析出ip地址。2.随后我们使用node宿主机直接去ping该地址发现居然是通的,说明百度云的宿主机和我们的IDC网络是相原创 2021-07-15 21:11:18 · 758 阅读 · 2 评论 -
Controller Manager POD Evicted 自动回收
–terminated-pod-gc-threshold 参数未设置前可以看到有大量状态为Evicted的pod默认该值为12500修改Controller Manager yaml文件 注意如果有多个master需要修改每个master节点上的controller manager yamlvim /etc/kubernetes/manifests/kube-controller-manager.yaml增加如下配置- --terminated-pod-gc-threshold=5修改原创 2021-06-17 18:18:46 · 541 阅读 · 0 评论 -
60道常见的 Kubernetes 面试题总结 【超级实用】
如果有帮助到你,请顺便点个赞或者收藏~简述ETCD及其特点?etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于 Go 语言实现。特点:简单:支持 REST 风格的 HTTP+JSON API安全:支持 HTTPS 方式的访问快速:支持并发 1k/s 的写操作可靠:支持分布式结构,基于 Raft 的一致性算法,Raft 是一套通过选举主节点来实现分布式系统转载 2021-05-25 15:45:23 · 409 阅读 · 0 评论 -
k8s1.18.9 Helm 安装istio 1.9.3
根据官网的步骤首先要下载一个shell脚本,之后会执行这个脚本。下载相关的安装包。但是可能由于网络原因会导致下载失败。所以我采取了直接从官网下载安装包,地址如下,可自主下载需要的版本https://github.com/istio/istio/releases/开始安装1.下载istio 1.9.3 安装包wget https://github.com/istio/istio/releases/download/1.9.3/istio-1.9.3-linux-amd64.tar.gztar xf.原创 2021-04-22 12:12:52 · 615 阅读 · 0 评论 -
kubernetes etcd数据备份与恢复
etcd数据备份etcd备份可以实现K8S集群的备份,但是这种备份⼀般是全局的,可以恢复到集群某⼀时刻的状态,⽆ 法精确到恢复某⼀资源对象,⼀般使⽤快照的形式进⾏备份和恢复。**如果在服务器执行的话不用加--cacert 一些参数如下**# 列出成员etcdctl member list# 列出kubernetes数据export ETCDCTL_API=3etcdctl get / --prefix #只列出keyetcdctl get / --prefix --keys-only原创 2021-04-22 00:14:15 · 470 阅读 · 0 评论 -
K8S资源回收机制
原文:https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/一 问题现象服务器的磁盘空间爆满(90%以上),触发某种机制,导致大量pod处于被驱逐状态(Evicted),大部分镜像被删除,所有服务均不可用。二 问题追踪发现服务器的存储达到某个状态(假如是超过90%)后会删除自身的一些资源,比较明显的是删除了大量的...原创 2021-03-09 16:57:13 · 678 阅读 · 0 评论 -
K8S使用GPU
多个pod共享一张GPU不行。pod在创建的时候请求gpu最低是卡级别,一张显卡只能分配给一个pod。但是一个pod是由多个容器组成的,所以同一个pod的容器可以共享分配给当前pod的所有GPU。多个docker容器共享一张GPU可以。通过nvidia-docker启动的容器可以共享一张GPU。因为容器是进程级的程序所以分配GPU可以达到显存级。K8S对于GPU的资源分配有两个问题GP...原创 2021-03-05 14:07:30 · 3181 阅读 · 3 评论 -
k8s的高可用Postgres Patroni实现原理测试报告
背景:因项目需求,需要基于k8s部署高可用postgres数据库。采用方案:PatroniPatroni介绍patroni 是一款运用 dcs 存储集群来存储信息、主备状态与配置,通过 patroni 来检测并且实 现主备库自动切换的软件。使用一套模板化的配置文件来自动搭建初始化数据库流复制集群 以及配置数据库。patroni 高可用集群由 postgresql,patroni,dcs 存储...原创 2021-03-05 13:53:59 · 1513 阅读 · 2 评论 -
Kubernetes中的亲和性与反亲和性
通常情况下,Pod分配到哪些Node是不需要管理员操心的,这个过程会由scheduler自动实现。但有时,我们需要指定一些调度的限制,例如某些应用应该跑在具有SSD存储的节点上,有些应用应该跑在同一个节点上等等。 nodeSelector:首先我们为Node规划标签,然后在创建部署的时候,通过使用nodeSelector标签来指定Pod运行在哪些节点上。亲和性(Affinity )与反亲和性...原创 2021-01-19 19:48:01 · 729 阅读 · 0 评论 -
ingress-nginx 部署使用及原理简介
ingress:可以简单理解为service的service,他通过独立的ingress对象来制定请求转发的规则,把请求路由到一个或多个service中。这样就把服务与请求规则解耦了,可以从业务维度统一考虑业务的暴露,而不用为每个service单独考虑。举个例子,现在集群有api、文件存储、前端3个service,可以通过一个ingress对象来实现图中的请求转发。ingress规则是很灵活的...原创 2021-03-05 14:04:44 · 1545 阅读 · 0 评论 -
k8s 调度流程和资源管理
一、Kubernetes 调度过程首先来看第一部分 - Kubernetes 的调度过程。如下图所示,画了一个很简单的 Kubernetes 集群架构,它包括了一个 kube-ApiServer,一组 webhooks 的 Controller,以及一个默认的调度器 kube-Scheduler,还有两台物理机节点 Node1 和 Node2,分别在上面部署了两个 kubelet。我们来看一下...原创 2021-03-05 14:22:58 · 1131 阅读 · 0 评论 -
k8s rbac 权限管理控制创建过程+理论知识
前言现在RBAC主要解决的一个问题,就是:所有人都拿的是admin的config文件,因此所有人都拥有最高权限,他可以为所欲为,从而很有可能在不知情的情况下,破坏k8s集群。因此我们需要对其进行控制,给他创建admin之外的账号,让他无法操作k8s系统重要部分的namespace。先不说原理,直接说操作步骤一、创建证书创建user私钥[root@node-01 ~]cd /etc/kuber......原创 2021-01-17 01:16:36 · 604 阅读 · 0 评论 -
Kubernetes 证书生成方法easyrsa openssl cfssl
转载官网地址:https://kubernetes.io/zh/docs/concepts/cluster-administration/certificates/当使用客户端证书进行认证时,用户可以使用现有部署脚本,或者通过 easyrsa、openssl 或 cfssl 手动生成证书。分发自签名 CA 证书证书 API使用 easyrsa 能够手动地为集群生成证书。下载、解压并初始化 ...原创 2020-05-19 09:48:44 · 567 阅读 · 0 评论 -
RBAC聚合
一个例子我们想要达到的目的:限制该用户只能查看集群的资源,并且能够查看监控图(monitoring)role文件apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata: name: aideveloper-role namespace: monitoringrules:- apiGroups: - "" re...原创 2021-01-17 01:21:41 · 115 阅读 · 0 评论 -
kubernetes 证书在线更新
各个证书的过期时间/etc/kubernetes/pki/apiserver.crt #1年有效期/etc/kubernetes/pki/front-proxy-ca.crt #10年有效期/etc/kubernetes/pki/ca.crt #10年有效期/etc/kubernetes/pki/...原创 2021-07-19 17:04:51 · 737 阅读 · 0 评论 -
K8S CNI及各CNI网络解决方案简述
CNi:什么是CNI?CNI是Container Network Interface的缩写,是一个标准的通用的接口。为了让用户在容器创建或销毁时都能够更容易地配置容器网络,现在容器平台:docker,kubernetes,mesos。CNI如何实现?CNI用于连接容器管理系统和网络插件。提供一个容器所在的network namespace,将network interface插入该network......原创 2020-09-19 20:59:31 · 4078 阅读 · 0 评论 -
离线部署K8S 1.18.9 (三Master+Haproxy+Keepalived)
一、系统架构图使用Keepalived + HAProxy搭建高可用Load balancer,完整的拓扑图如下:二、服务器资源清单三、安装包及工具清单k8s-install-tool/├── calico│ ├── calico-cni.tar│ ├── calicoctl│ ├── calico-kube-controllers.tar│ ├── calico-no...原创 2020-10-14 10:51:40 · 1140 阅读 · 0 评论 -
k8s 集群部署rook-ceph存储系统及使用
一、Rook 、ceph简介Ceph分布式存储系统Ceph是一种高度可扩展的分布式存储解决方案,提供对象、文件和块存储。在每个存储节点上,您将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程。在Ceph集群上,您还可以找到Ceph MON(监控)守护程序,它们确保Ceph集群保持高可用性。RookRook 是一个开源的cloud-native storage编排, .........原创 2020-10-22 21:24:14 · 7302 阅读 · 4 评论