自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kubernetes(v1.27.1)安装Prometheus最新版本

通过监听API Server生成有关资源对象的状态指标,比如Deployment、Node、Pod,需要注意的是kube-state-metrics只是简单的提供一个metrics数据,并不会存储这些指标数据,所以我们可以使用Prometheus来抓取这些数据然后存储,主要关注的是业务相关的一些元数据,比如Deployment、Pod、副本状态等;调度了多少个replicas?现在可用的有几个?多少个Pod是running/stopped/terminated状态?Pod重启了多少次?

2023-09-12 00:09:43 573

原创 git笔记

很早之前学的git都忘了,现在实习用到,再记录一下。

2023-08-08 18:14:17 270 1

原创 【无标题】

上网查阅后发现,原因是Go 中 main 包默认不会加载其他文件, 而其他包都是默认加载的。如果 main 包有多个文件,则在执行的时候需要将其它文件都带上,即执行 go run *.go。今天在写代码过程中发现在同一个包内,main.go中无法调用同一个包中的函数时,显示报错。说我的函数没有定义,我已经用go mod init初始化了项目,为什么还是不行?Go main包调用同包下的函数​。

2023-08-01 11:27:26 202

转载 Kubernetes集群负载预测及伸缩策略

它有三个值,其中 S 表示 season,也就是它的周期,周期模拟的方式等同于傅立叶级数,就是通过 N 个三角函数叠到一起,它就能模拟不同的周期函数。CA 基于 Group 的能力,它可以根据需求在云厂商上自动扩展物理节点,通过 API 获取 Node Group 原信息,并知道 Node Group 里机器的型号,以此构造一个虚拟的 Node,比如说一个 4G 或 8G 的机器。,因为它没有输入 Pod,它只与时间相关,所以虽然大部分情况下它的效果都不错,但在突发的那条高线上,它还是无法满足我们的需求。

2022-10-13 10:40:21 931

原创 Go中同一个包中的函数无法调用问题解决

在同一个包内,main.go中无法调用同一个包中的函数时,显示报错。

2022-09-21 14:22:06 2370

原创 Windows下Goland的Debug显示“frames are not available“

Windows下Goland的Debug显示"frames are not available"问题解决

2022-08-13 11:23:23 1381 1

转载 golang:channel 全面解析

golang通道的详细解读

2022-07-09 17:38:30 6809

转载 golang-浅析mutex

当程序中有一部分代码会出现并发访问或者修改的情况,需要采取特殊手段将这部分代码保护起来以免出现数据错乱的问题,这部分被保护起来的代码叫做临界区,例如对数据库的修改访问,对全局共享资源的访问修改 。这里没有给出上下文,但是抛出了一个问题,第2行代码co...

2022-07-08 14:21:18 373

转载 Golang -- WaitGroup 解析

Golang 提供了简洁的 go 关键字来让开发者更容易的进行并发编程,同时也提供了 WaitGroup 对象来辅助并发控制。

2022-07-08 13:34:34 708

转载 Golang协程概念

Golang协程概念

2022-07-08 10:33:25 249

原创 Kubernetes--安全认证

1、 访问控制概述Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种**客户端**进行**认证和鉴权**操作。客户端在Kubernetes集群中,客户端通常有两类:● User Account:一般是独立于kubernetes之外的其他服务管理的用户账号。● Service Account:kubernetes管理的账号,用于为Pod中的服务进程在访问Kubernetes时提供身份标识...

2022-05-07 19:03:17 276

转载 Kubernetes--数据存储

1、基础概念在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被一个Pod里的多个容器挂载到具体的文件目录下,kubernetes通过Volume实现同一个Pod中不同容器之间的数据共享以及数据的持久化存储。Volu...

2022-05-01 20:09:16 405

原创 Kubernetes--Ingress详解

在前面课程中已经提到,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点:● NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显● LB方式的缺点是每个service需要一个LB,浪费、麻烦,并且需要kubernetes之外设备的支持基于这种现状,kubernetes提供了Ingress资源对象,Ingress只需要一个NodePort或者一个LB就可以满足暴...

2022-04-27 16:00:12 1565

原创 Kubernetes--Service详解

在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服务。Service在很多情况下只是一个概念,真正起作用的其实是kube-proxy服务进程,每个Node节点上都运行.

2022-04-26 16:44:51 935

原创 Kubernetes--有状态应用编排:StatefulSet

Deployment认为:管理的所有同版本的pod都是一模一样的副本StatefulSet能够比较好的满足一些有状态应用特有的要求:1、每个Pod有Order序号,会按照序号创建、删除、更新pod2、通过配置headless service,使每个pod有唯一的网络标识(HOSTNAME)3、通过配置pvc template,每个pod有一块独享的pv存储盘4、支持一定数量的灰度发布一个简单的Statefulset范例创建# 创建service.yamlapiVersion:

2022-04-23 10:31:03 4433

原创 Kubernetes--Pod控制器:DaemonSet、Job&CronJob

1、Daemon控制器DaemonSet类型的控制器可以保证在集群中的每一台(或指定)节点上都运行一个副本。一般适用于日志收集、节点监控等场景。也就是说,如果一个Pod提供的功能是节点级别的(每个节点都需要且只需要一个),那么这类Pod就适合使用DaemonSet类型的控制器创建。DaemonSet控制器的特点:● 每当向集群中添加一个节点时,指定的 Pod 副本也将添加到该节点上● 当节点从集群中移除时,Pod 也就被垃圾回收了来看看...

2022-04-22 16:15:37 352

原创 Kubernetes--Pod控制器:Horizontal Pod Autoscaler(HPA)

在前面的课程中,我们已经可以实现通过手工执行`kubectl scale`命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标--自动化、智能化。 Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler(HPA)这种控制器。HPA可以获取每个Pod利用率,然后和HPA中定义的指标进行对比,同时计算出需要伸缩的具体值,最后实现Pod的数量的调整。其实HPA与之前的Deployme...

2022-04-22 14:10:09 458

原创 Kubernetes--Pod控制器:ReplicaSet&Deployment

1、Pod控制器的介绍在kubernetes中,按照pod的创建方式可以将其分为两类:● 自主式pod:kubernetes直接创建出来的pod,这种pod删除后就没有了,也不会重建● 控制器创建的pod:通过控制器创建的pod,这种pod删除了之后还会自动重建★什么是Pod控制器★Pod控制器是管理pod的中间层,使用了pod控制器之后,我们只需要告诉pod控制器,想要多少个什么样的pod就可以了,它就会创建出满足条件的pod并确保每一个pod处于用户期望的状态,如果pod在运行中出现

2022-04-20 18:07:26 457

原创 Kubernetes--Pod的调度

在默认情况下,一个pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际的使用过程当中,这并不能满足需求,因为在很多情况下,我们想控制某些Pod到某些节点上,那么应该怎么做呢?这就要求了解Kubernetes对于Pod的调度规则,Kubernetes提供了四大类的调度方式● 自动调度:运行在哪个节点上完全由Scheduler经过一系列的计算得出● 定向调度:NodeName,NodeS...

2022-04-17 20:30:21 1679

原创 Kubernetes——Pod生命周期

我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,他主要包括下面的过程:● pod创建过程● 运行初始化容器(init container)

2022-04-16 19:01:07 1085

原创 Kubernetes中Pod详解——环境变量、端口和资源配额

1、环境变量:env还是老样子,用一个老的yaml文件先看看这个环境变量env的使用方法和格式apiVersion: v1kind: Podmetadata: name: pod-env namespace: dev labels: user: Hud98 spec: containers: - name: busybox image: busybox:1.30 command

2022-04-12 18:59:10 4295

原创 Kubernetes中Pod详解——镜像拉取策略和启动命令

主要研究pod、spec、containers属性,这是pod配置中最为关键的一项配置[root@master ~]# kubectl explain pod.spec.containersKIND: PodVERSION: v1RESOURCE: containers <[]Object> #数组,代表可以有多个容器FIELDS: name <string> #容器名称 image <strin

2022-04-11 17:14:51 5798

原创 Kubernetes实战入门

通过本篇文章记录如何在Kubernetes集群中部署一个nginx服务,并且能够对其进行访问1、Namespace Namespace是Kubernetes系统中的一种非常重要的资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离 默认情况下,Kubernetes集群中的所有Pod都是可以相互访问的,但是我们再实际过程中很可能不想让两个Pod之间进行相互的访问,那么此时就可以将两个Pod划分到不同的namespace下。Kubernetes通过将集群内部的...

2022-04-10 20:53:38 1419

原创 Kubernetes资源管理

1、资源管理介绍在Kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理Kubernetes。 Kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,就是在Kubernetes集群中运行一个个的容器,并将指定的程序跑在容器里。 Kubernetes的最小管理单元是pod而不是容器,所以只能将容器放在pod中,而Kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理pod的。 Pod可以...

2022-04-06 21:47:11 565

原创 kubernetes环境搭建&集群安装

1、安装Docker这些个步骤我在之前的docker笔记中都有过记录,但是,温故是好事,再来动手做一遍1.1 安装gcc环境:yum -y install gccyum -y install gcc- c++1.2 更换镜像源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新yum软件包索引:$ yum makecache fast

2022-04-04 17:46:42 3400

原创 K8S中的Pod概念和网络通讯方式+集群安装准备

在一个Pod中,可能有一个或多个容器。只要有Pod,就会启动Pause这个容器,Pod中的容器会共用这个pause的网络栈和存储卷。也就是说这两个容器没有自己独立的Ip地址,有的是这个pod的地址。...

2022-04-02 15:09:42 1652

原创 Kubernetes集群架构组件

一个Kubernetes集群首先需要包含两个部分 :● master(主控节点)和node(工作节点)

2022-03-31 10:30:19 389

原创 Kubernetes概述

1、kubernetes基本介绍。 kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机...

2022-03-29 13:29:31 148

原创 Windows下搭建Golang开发环境

● 安装SDK(Software Development Kit 软件开发工具包)

2022-03-29 10:46:17 1356

原创 Docker容器数据卷

● Docker 挂载主机目录访问如果出现cannot open directory .: Permission denied解决办法:在挂载目录后多加一个--privileged=true参数即可如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了额,如果要开启,我们一般使用--privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的r...

2022-03-17 17:40:04 844 1

原创 Docker镜像commit操作案例

● docker commit提交容器副本使之成为一个新的镜像 比如 在我们从官网下载的Ubuntu镜像是没有vim命令的:格式:docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]操作实例:(commit一个带有vim命令的新镜像)① 在终端输入 apt-get update②在终端输入 apt-get -y install vim...

2022-03-01 11:00:30 746 2

原创 Docker的分层结构

UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。特性: 一次同时加载多个文件系统,但从外面看起来,只能看

2022-02-20 20:24:01 1847

原创 Docker常用容器指令

● Docker容器指令 docker run [OPTIONS] IMAGE [COMMAND][ARG...]选项 含义 --name=“容器新名字” 为容器指定一个新名称 -d 后台运行容器并返回容器ID,即启动守护式容器(后台运行) -i 以交互模式运行容器,通常与-t同时使用 -t 为容器重新分配一个伪输入终端,通常与-i同时使用 -P 随机端口映射 -p 指定端口映射 ...

2022-02-19 11:30:03 1521

原创 Docker常用命令

● Docker有着比虚拟机更少的虚拟层 由于Docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上Docker将会在效率上有明显优势● Docker利用的是宿主机的内核,而不需要加载操作系统的OS内核 当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需...

2022-02-10 17:29:52 1240

原创 Docker安装

开发环境选择CentOS7,第一步下载CentOS7镜像,新建一个名为Docker的虚拟机:磁盘大小设置为100G,设置两块网卡,一块为仅主机模式,另外一个用于上网设置为NAT模式。添加挂载点/boot 大小800MB ,swap挂载点 大小 4000MB 和跟目录为剩余根目录。●用户名root 密码199866打开第一块网卡打开开机自启,ONBOOT=yes,设置IP地址和子网掩码:...

2022-02-03 19:03:28 132

原创 Docker概念

Docker是一种运行于 Linux 和 Windows 上的软件,用于创建、管理和编排容器。 Docker 是在 GitHub 上开发的 Moby 开源项目的一部分。Docker 公司,位于旧金山,是整个 Moby 开源项目的维护者。Docker 公司还提供包含支持服务的商业版本的 Docker。1、Docker仓库:Docker Hubhttps://hub.docker.com/2、Dcoker自身组件: ● Docker Client:Docker的客户...

2022-01-29 11:32:37 138

原创 Linux基础知识及操作

出于系统学习的考虑,准备占用比较少的时间学习以下Linux的基础知识以及比较简单的指令,为后面的学习打点基础。关于Linux的作用和发展历程这些个百度上都有,这里就不做什么介绍了,这里主要先说说几个基础的指令。序号 命令 对应英文 作用 ① ls list 查看当前文件夹下内容 ② pwd print work directory 查看当前所在文件夹 ③ cd[目录名] change directory ...

2022-01-27 22:11:06 156

原创 Chapter 6 抽象

本章的内容将会介绍如何将语句组织成函数,到目前为止所有接触到的程序还都很小,但是当我们接触到大型程序时,就会遇到不小的麻烦,为此呢需要我们学会构建和使用自己的函数,从而做到事半功倍~6.1 创建函数函数可以被调用,执行某种操作并且返回一个值,一般而言内建函数callable函数可以用来判断函数是否可以被调用:>>> import math>>> x=1>>> y=math.sqrt>>> callable(x)Fa

2022-01-17 18:19:45 109

Golang基础学习笔记

肝了半个月的Golang学习笔记,比较基础

2022-08-11

空空如也

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

TA关注的人

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