自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(449)
  • 收藏
  • 关注

原创 kubernetes Pod已用内存监控分析

kubernetes Pod已用内存监控分析

2021-12-24 14:35:28 2957

原创 从零开始搭建Go语言开发环境

go 开发环境配置

2021-12-03 21:32:31 1405

原创 Kubernetes 1.18 Warning ImageGCFailed Error failed to get imageFs info: unable to find data in memor

Kubernetes 1.18 Warning ImageGCFailed Error failed to get imageFs info: unable to find data in memory cache

2021-11-30 20:21:51 6028

原创 开发IDE推荐JetBrains系列

开发IDE推荐

2021-11-30 17:22:52 1131

原创 kube-proxy 切换 proxy mode

kube-proxy切换proxy mode

2021-11-30 17:15:08 2233

原创 minio分布式解决方案

minio

2021-11-30 17:12:18 9997 9

转载 Kubernetes Nginx Ingress HTTP 通过 301 而不是 308 重定向到 HTTPS?

我们正在 Azure AKS 上运行几个 k8s 集群。该服务(幽灵博客)位于 Nginx 入口后面,并使用 Letsencrypt 的证书进行保护。所有这些工作正常,但重定向行为是我遇到的问题。The Ingress correctly re-directs fromhttp://whatever.comtohttps://whatever.com—the issue is that it does so using a 308 redirect which strips all po...

2021-11-16 20:48:55 2775

原创 ingress-nginx 中 Rewrite 的使用

ingress-nginx 中 Rewrite 的使用

2021-11-16 20:30:49 9098 1

转载 网络排查工具MTR介绍

常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 Linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是 mtr。mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。traceroute默认使用UDP数据包探测,而mtr默认使用ICMP报文探测,ICMP在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实

2021-11-15 21:21:57 718

原创 一文搞懂容器运行时 Containerd

在学习 Containerd 之前我们有必要对 Docker 的发展历史做一个简单的回顾,因为这里面牵涉到的组件实战是有点多,有很多我们会经常听到,但是不清楚这些组件到底是干什么用的,比如libcontainer、runc、containerd、CRI、OCI等等。Docker从 Docker 1.11 版本开始,Docker 容器运行就不是简单通过 Docker Daemon 来启动了,而是通过集成 containerd、runc 等多个组件来完成的。虽然 Docker Daemon 守护进程..

2021-11-15 21:01:01 1787

原创 K8S metrics server 安装

helm安装地址:Release metrics-server-helm-chart-3.6.0 · kubernetes-sigs/metrics-server · GitHubhelm install -f values.yaml metrics-server -n mcd-infra ./报错解决:metrics server cannot validate certificate for because it doesn't contain any IP SANssolve:...

2021-11-15 20:42:36 1349

原创 浅谈systemd

浅谈systemdsystemd的基本概念Systemd的管理服务Systemd的管理运行级别systemd的基本概念一、system的简要介绍定义  系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程新特性系统引导时实现服务并行启动按需启动守护进程自动化的服务依赖关系管理同时采用socket式与D-Bus总线式激活服务系统状态快照systemd的核心概念:unitunit表示不同类型的systemd对象,通过配置文件进行标识和配置;文

2021-11-15 16:45:35 952

原创 Ubuntu 1804 升级内核

前言原本使用(Ubuntu Server 18.04.2 LTS)来搭建一个NextCloud服务,为公司提供共享盘服务。在本地PVE环境下自己测试的时候,来尝试更新一下Linux的内核,折腾一下内核。网传的ubuntu更新内核的教程都有各种问题,例如我们这次会提到的,更新到4.17版本之后的内核,需要安装的软件包会多一个。这次自己来写一个教程记录一下。为什么要更新Linux内核? 如何查看自己当前的版本? 更新到哪个内核比较合适? 正式更新的具体步骤1. 为什么要更新Linux内核?

2021-11-15 15:44:29 3046

原创 Docker切换Containerd

1.节点disable kubectl cordon node-host-name 2. 操作系统开启cgroupv2 cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter # 设置必需.

2021-11-15 15:42:09 1682

原创 Helm(6)-Chart开发提示和技巧

本指南涵盖了Helm chart的开发人员在构建生产环境质量的chart时学到的一些提示和技巧。了解你的模板功能Helm使用了Go模板将你的自由文件构建成模板。 Go塑造了一些内置方法,我们增加了一些其他的。首先,我们添加了Sprig库中所有的方法,出于安全原因,“env”和“expandenv”除外。我们也添加了两个特殊的模板方法:include和required。include方法允许你引入另一个模板,并将结果传递给其他模板方法。比如,这个模板片段包含了一个叫mytpl的模板,然..

2021-11-10 21:16:15 1435

原创 Helm系列(3)- Helm 的基本使用

仓库Helm 的 Repo 仓库和 Docker Registry 比较类似,Chart 库可以用来存储和共享打包 Chart 的位置,我们在安装了 Helm 后,默认的仓库地址是 google 的一个地址,这对于我们不能科学上网的同学就比较苦恼了,没办法访问到官方提供的 Chart 仓库,可以用helm repo list来查看当前的仓库配置:$ helm repo listNAME URLstable https://kubernetes-charts.storage.google

2021-11-10 20:00:22 3199

原创 Makefile + Dockerfile

从来没写过Makefile,见过的倒是不少,没有自己写过,还是不会。有好多关于makefile的,但是我感觉都写的太过理论,昨天折腾了一天,还是不知怎么下手。早上看到这个文章,觉得可操作性很强。使用Makefile构建Docker - Ryan.Miao - 博客园为什么会有.PHONY当我们设置的target和当前目录下的文件名一样的话,target会被忽略,所以,通常,我们把target都用做phony target。Makefilemakefile的空格键是Tab,否则会报

2021-11-10 16:26:56 3340 1

原创 使用Dockerfile构建Docker镜像

目录前言 Dockerfile的书写规则及指令使用方法 创建Dockerfile,构建运行环境 构建镜像 Dockerfile参考示例 Dockerfile最佳实践1. 前言Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。

2021-11-10 16:24:48 868

原创 K8s 还是 k3s?This is a question

本文来自:Rancher Labs自k3s问世以来,社区里有许多小伙伴都问过这样的问题“除了中间的数字之外,k3s和K8s的区别在哪里?”,“在两者之间应该如何选择?”。本文将简单介绍它们两者的区别。什么是Kubernetes?正如大家所了解到的那样,Kubernetes是一个“容器编排平台”,也就是说你可以从一组机器中选择其中之一来运行你所需要使用的容器。它也处理诸如升级你的容器之类的事情,所以如果你发布网站的新版本,它会逐渐使用新版本来启动容器,并放弃旧版本,这一过程仅需一到两分钟。

2021-11-09 21:20:49 860

转载 Helm系列(2)- 你不得不了解Helm 3中的5个关键新特性

1、 移除了TillerHelm最终移除了其服务器端组件,Tiller。现在,它完全没有代理。Tiller之前是一个运行在Kubernetes上的小型应用程序,它用于监听Helm命令并处理设置Kubernetes资源的实际工作。这是Helm3中最重大的更改。为什么Tiller的移除备受关注呢?首先,Helm应该是一种在Kubernetes配置上的模板机制。那么,为什么需要在服务器上运行某些代理呢?Tiller本身也存在一些问题,因为它需要集群管理员的ClusterRole才能创建。因此,假设你要

2021-11-09 21:10:59 768

原创 Failed to create pod sandbox: open /run/systemd/resolve/resolv.conf: no such file or directory

将master上对应目录/run/systemd/resolve/resolv.conf文件复制一份到子节点上即可。如还不行,可试下如下方法:1、首先kubectl -n kube-system edit configmap coredns2、然后注释掉loop3、最后kubectl -n kube-system delete pod -l k8s-app=kube-dns...

2021-11-09 16:49:26 2435 2

原创 kubernetes ingress更改日志格式

 Ingress Nginx默认访问日志都输出到/var/log/nginx/access.log文件中,但是对于一般的生产环境来说,不可能把所有日志都输到一个日志文件中,一般情况都是根据域名分别输出到各个文件中。所以这里区分http指令域默认配置以及单独域名的日志的配置方式。1.默认日志格式更改为json  修改mandatory.yaml部署文件nginx-configuration ConfigMap配置中log-format-upstream字段,具体修改如下: log-form

2021-11-09 15:43:24 3761

原创 Ingress(Nginx)日志持久化与可视化(多图预警)

Ingress(Nginx)日志持久化与可视化(多图预警)Ingress(Nginx)日志持久化与可视化(多图预警) 前言 部署架构 部署步骤 一、ingress持久化步骤 1. 自建kubernetes的ingress持久化 (1) ingress添加PVC用于ingress日志存储 (2) ingress添加挂载 (3) ingress修改日志格式和存储位置 2. 阿里云kubernetes的ingress持久化 (1) 通过阿里云控制台为i

2021-11-09 15:33:03 4063

原创 Helm系列(5)-helm 常用命令

安装前自定义 chart上述安装方式只会使用 chart 的默认配置选项。很多时候,我们需要自定义 chart 来指定我们想要的配置。使用helm show values可以查看 chart 中的可配置选项:然后,你可以使用 YAML 格式的文件覆盖上述任意配置项,并在安装过程中使用该文件。$ echo '{mariadb.auth.database: user0db, mariadb.auth.username: user0}' > values.yaml$ helm ins..

2021-11-04 20:00:17 11372

原创 ETCD 问题、调优、监控

高可用etcd 是基于 raft算法的分布式键值数据库,生来就为集群化而设计的,由于Raft算法在做决策时需要超半数节点的投票,所以etcd集群一般推荐奇数节点,如3、5或者7个节点构成一个集群。以上是etcd集群部署的基础概念,但是还需要注意以下问题:选主过程etcd 是高可用的,允许部分机器故障,以标准的3 节点etcd 集群,最大容忍1台机器宕机,下面以最简单的leader宕机来演示raft 的投票逻辑,以实际的运行日志来验证并理解。更多的场景可以看之前的原理解析场景:正常运行的三

2021-11-03 19:03:31 3413

转载 linux系统启动过程详解-开机加电后发生了什么 --linux内核剖析(零)

linux系统的启动流程关于linux系统的启动流程我们可以按步进行划分为如下:BIOSPOST自检BIOS(Boot Sequence)引导操作系统加载对应引导上的MBR(bootloader)主引导设置加载其BootLoader加载操作系统启动BIOS,准备实模式下的中断向量表和中断服务程序电脑启动后,CPU逻辑电路被设计为只能运行内存中的程序,没有能力直接运行存在于软盘或硬盘中的操作系统,如果想要运行,必须要加载到内存(RAM)中。BIOS是如何启动的,CPU硬件逻辑设计为在加

2021-11-03 18:38:33 510

原创 Kubernetes Dashboard部署

安装部署Kubernetes Dashboard (补充解决官方出现的一些RBAC CERT等问题)官方文档:https://github.com/kubernetes/dashboard参考文章:https://kuboard.cn/install/install-k8s-dashboard.html#前言Kubernetes Dashboard 是 Kubernetes 的官方 Web UI。使用 Kubernetes Dashboard,你可以: 向 Kubernetes 集群部

2021-11-03 18:23:37 604

原创 K8s常见问题:Service 不能访问排查流程

问题1:无法通过 Service 名称访问如果你是访问的Service名称,需要确保CoreDNS服务已经部署:[root@k8s-master ~]# kubectl get pods -n kube-systemNAME READY STATUS RESTARTS AGEcoredns-7f89b7bc75-745s41/1Running03d5hcoredns-7f89b7bc75-fgdfm1/1Ru...

2021-11-03 17:36:02 10424 2

原创 Promethuse-监控 Etcd

Prometheus监控Etcd集群==前提Prometheus是用Prometheus Operator安装的==安装方法: Prometheus Operator: https://www.qikqiak.com/post/first-use-prometheus-operator/ 监控Etcd: https://www.qikqiak.com/post/prometheus-operator-monitor-etcd/ 第一步建立一个 ServiceMonitor

2021-11-03 17:16:06 1664

原创 K8S 检查 unhealthy Get “http://127.0.0.1:10251/healthz“: connect: connection refused

> k get csNAME STATUS MESSAGE ERRORscheduler Unhealthy Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: c...

2021-11-01 16:15:05 3195

原创 记一次RabbitMQ服务器异常断电之后,服务重启异常的处理过程

问题描述:机房突然停电,rabbitmq的主机异常断电,集群服务全部需要重启。但是在执行service rabbitmq-server start 启动主节点服务的时候,没有反应,服务没有启动,命令也执行卡住了。必须Ctrl+C结束进程:[root@master-2 rabbitmq]# service rabbitmq-server startStarting rabbitmq-server (via systemctl): ^C[root@master-2 rabbitmq]#查看/var.

2021-11-01 15:24:31 2373 1

原创 如何将单 master 升级为多 master 集群

前面我们课程中的集群是单 master 的集群,对于生产环境风险太大了,非常有必要做一个高可用的集群(https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/ha-topology/),这里的高可用主要是针对控制面板来说的,比如 kube-apiserver、etcd、kube-controller-manager、kube-scheduler 这几个组件,其中 kube-controller-manager 于 ku

2021-11-01 15:22:31 554

原创 docker中不同network容器之间互相通信

背景:使用docker network create 命令创建了一个新的桥(docker1,子网地址为172.26.0.0/16,网关是172.26.0.1),然后启动容器b1连接到docker1上。docker默认的桥bridge(也就是docker0,子网地址为10.0.0.0/16,默认网关为10.0.0.1),然后启动容器b2连接到docker0上,示意图如下所示:在容器b1和容器b2中分别ping对方的ip,发现无法通信。解决办法:使用iptables -t filter -nv.

2021-10-20 17:50:33 787

转载 互联网公司分布式集群架构图

一、小型公司网络架构狗子是某大学计算机专业本科应届毕业生,由于自己的技术不错,再加上互联网产业的巨大利润的驱使,狗子决定走上创业这条路,于是,狗子联合了同学二黑,鸡子,狗蛋等人花费了几个月的时间写出了一套网站,是关于足球资讯的pc端网站加上手机APP客户端。现在产品测试成功了,准备发布了,狗子想到了两个问题:1.网站需要服务器狗子之前所有的代码测试都是在本地服务器或者局域网上进行的,现在需要把产品发布到外网上,让所有的人都能访问,因此再用自己的电脑当服务器显然很不现实,于是,狗子去买了一台服务器,在

2021-10-19 20:45:02 1697 1

原创 K8S 故障处理经验积累(容器)

1.k8s集群 某个节点 pod 启动不了,docker报错如下failed to start shim: fork/exec /usr/bin/docker-containerd-shim: resource temporarily unavailable: unknown Failed to create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "mcd-xua.

2021-10-18 21:21:23 1708

原创 使用ctr 命令管理 Containerd 容器

管理 容器运行时 Containerd# --address value, -a value 指定 containerd's GRPC server,默认 /run/containerd/containerd.sock#查看命名空间ctr namespace ls# 查看 K8S 命名空间下的镜像ctr -n k8s.io images ls# 下载镜像ctr images pull docker.io/library/redis:alpine# 创建 containerctr .

2021-10-18 21:18:05 8671

原创 NSQ系列(四)--nsq问题处理经验

集群配置:1个nsqlookupd, 1个nsqadmin,3个nsqd分区:1个order-topic,分区数为100,副本数为3扩容时,新增一个nsqd-4。刚开始,nsqd-4没有任何分区副本。接下来通过nsqadmin页面发现,每隔10分钟nsqd-4节点会新增一个分区副本如果按上面的节奏,集群想要达到所有副本均衡分散在�4个nsqd节点上,需要 100 分区* 3副本 / 4 nsqd * 10 分钟 = 750分钟。请问为什么时间间隔要设置成10分钟?如果调小,可能会造成什么

2021-10-13 20:23:22 421

原创 NSQ系列(三) - nsq 监控

监控部署落地工单处理完了,我松了一口气,但是事情并没有告一段落。这个故障算是敲响了警钟:不能觉得 NSQ 性能不错就认为消息不会堆积了,必要的监控报警还是得安排上。因为我司已经存在的基础设施,所以我决定使用 Prometheus 来监控 NSQ 服务。(Prometheus 的相关背景知识就不在这里科普了, 想看的请留言。)Prometheus 通过 exporter 去采集第三方服务的数据,也就是说 NSQ 必须配置一个 exporter 才能接入 Prometheus。Prometheu

2021-10-13 20:21:41 768 3

原创 NSQ系列(二)nsq 部署

NSQNSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day.helm repo add beeinventor https://beeinventor.github.io/chartshelm install my-release beeinventor/nsq参考:cnsq 1.2.0 · beeinven...

2021-10-13 20:17:13 355

原创 NSQ系列(一)nsq 介绍

NSQ 介绍简介NSQ 是一款 Go 语言编写的开源分布式消息队列中间件,具备非常好的性能、易用性和可用性。性能方面,采用了分布式可横向扩展的架构,让其适用于超大规模的消息实时处理,能够满足绝大部业务量级的需要;易用性方面,NSQ 配置和部署都非常的简便,提供了清晰的文档和多语言且功能全面的 SDK,同时还提供了浏览器 nsqadmin、nsqlookupd 等非常好用的易用性组件,nsqadmin 可以实现可视化的管理消息集群;可用性方面,NSQ 具备非常高质量的工程实现,程序鲁棒性非

2021-10-13 20:14:31 7461

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除