- 博客(47)
- 收藏
- 关注
原创 Kubernetes 集群搭建(三):使用dashboard用户界面(需要访问外网获取yaml)
K8s Dashboard是Kubernetes的Web界面工具,用于可视化管理和监控集群,支持资源查看与管理、实时状态监控、资源监控与度量及安全性与访问控制。文章介绍了通过yaml方式安装Dashboard的步骤,包括下载yaml文件、准备镜像、安装、创建用户及网页访问。
2025-04-07 14:52:28
424
原创 Kubernetes 集群搭建(二):搭建k8s集群 (1.28版本)
本文介绍了Kubernetes集群的搭建过程,包括虚拟环境准备、所有主机统一配置(关闭防火墙、swap,修改hosts、内核参数,安装containerd、k8s,配置ipvs等)、master节点配置(设置主机名、重置、配置kubeadm-config.yaml、初始化集群、安装CNI插件Calico)、Node节点配置(更改主机名、加入集群)及测试,所有pod运行正常表明集群搭建成功。
2025-04-07 00:09:44
1263
原创 Kubernetes 集群搭建(一):k8s 从环境准备到 Calico 网络插件部署(1.16版本)
简述了基于kubeadm搭建Kubernetes 1.16集群的完整流程,包括虚拟环境准备、关闭防火墙/SELinux、禁用Swap、配置内核参数及安装Docker和Kubernetes组件。重点讲解了主节点初始化、Calico网络插件部署及国内镜像加速解决方案,适用于新手及实战场景。
2025-04-05 21:51:42
548
原创 关于存储的笔记
本文介绍了块存储、文件存储和对象存储的特点、适用场景、常见运用及访问形式。块存储适用于高性能、低延迟场景;文件存储支持数据共享,具有文件系统与元数据;对象存储适合大数据、云存储,支持高并发访问,通过URL定位数据。
2025-04-02 21:12:46
387
原创 windows专用网路的共享文件配置
在开始菜单里搜索“本地安全策略”,选择需要共享的网络接口,打开它的属性。我的电脑->网络(右键选择属性)->高级共享设置。这样就完成了专用网络的共享配置了。
2025-03-21 22:55:40
268
原创 Jenkins在Windows上的使用(二):自动拉取、打包、部署
访问部署好的Jenkins服务器网址localhost:8080,完成默认插件的安装后,接下来将使用SSH登录远程主机以实现自动化部署。在dashboard->Manage Jenkins->system下配置远程主机的ip、用户名、密码等。在dashboard->Manage Jenkins->tools里配置。密码不是直接填写的,在【添加】选项里完成“密码本”的配置。新建item,输入任意的名称,进入item配置。
2025-03-07 23:48:22
1074
原创 Jenkins在Windows上的使用(一):用户配置
开始->本地安全策略->本地策略->用户权限分配->作为服务登录。开始->计算机管理->本地用户和组->新用户。添加jenkins用户作为服务登录的权限。根据需要设置用户名和密码。
2025-03-07 19:53:54
474
原创 kafka zookeeper 集群搭建
配置完成后,每个节点只有broker.id不同,例如k1的配置如下。进入z1、z2、z3节点的zookeeper配置目录,例如。编辑节点/etc/hosts 文件,分发至每个节点。配置java环境(jdk1.8以上)或者手动配置java环境。采用官网下载安装包的方法。
2025-03-07 19:30:23
418
原创 docker使用代理的简单配置
准备代理服务器如192.168.120.168:52209,通过systemctl status docker查看Docker服务状态并定位其service文件,编辑该文件在[Service]部分添加HTTP、HTTPS代理配置及NO_PROXY设置,之后通过systemctl daemon-reload和systemctl restart docker重启Docker服务,最后测试拉取任意外网镜像以验证配置是否成功。
2025-02-28 17:01:09
432
原创 Vmvare虚拟机使用代理
介绍了如何通过配置宿主机和虚拟机来实现局域网代理。宿主机需配置好网络并开启局域网代理,记录下真实网卡的IP地址及代理服务的端口号;虚拟机则选择NAT模式进行网络连接。随后,在Linux终端中设置相应的代理环境变量,可以直接运行命令,或将环境变量添加到~/.bashrc(影响当前用户)或/etc/profile(影响所有用户)中以实现持久化配置。
2025-02-28 16:39:52
509
原创 DNS 服务器配置
搭建本地DNS服务器,提供域名master.test.com及blog.test.com的解析服务,解析地址都为192.168.101.101。
2025-02-11 20:28:34
380
原创 Apache服务器的基础配置(认证考试笔记)
配置Apache服务器:1. 不能修改Apache默认配置文件2. 建立虚拟主机www.test.com,端口803. 将URL`www.test.com/data`的请求引至目录`/web/database`,将URL `www.test.com/img`的请求导至目录`/web/images`4. `web/images`采用目录浏览模式5. 配置文件访问权限及Selinux权限等
2025-02-11 19:46:10
155
原创 mysql 主从模式配置
配置MySQL主从模式(Master-Slave Replication)是提升数据库读性能、实现高可用性和数据备份的常用方法。以下是一个基本的MySQL主从复制配置步骤,适用于大多数MySQL版本(例如MySQL 5.7和MySQL 8.0)。
2025-02-08 15:24:24
367
原创 LVS + KeepAlived 配置HA集群的步骤
准备vmvare linux虚拟主机4台,假设对外提供的VIP是192.168.174.110。
2025-02-07 11:35:17
549
原创 LVS工作模式 DR 配置要点
当Client、RIP、VIP处于同一网段下时,LVS完成客户端client代理过后,同一客户端由于缓存的存在,再次发起的请求和相应都不会经过DS了,此时会发现客户端得到的响应一直都来自同一RS。
2025-02-03 01:11:43
412
原创 firewalld防火墙阻止docker容器间通信的排查思路及解决方案
现有两个docker容器nginx、openjdk分别部署前后端服务,假设默认防火墙为firewalld,发现在默认配置下,本地直接curl后台服务器能正确响应,nginx的代理的请求proxy_pass无法得到后台服务器的响应
2024-11-24 00:57:43
1359
原创 Nginx由于错误配置出现404页面及及其他踩坑点的简单整理
配置nginx的.conf文件时,会有一些容易踩坑的地方,即配置不当导致出现404页面,原因可能由root 及 alias 对文件路径的拼接,末尾的斜杠“/”有无,或者location uri匹配规则引起,以下简单整理了这些排错方法/
2024-11-19 21:44:32
6941
原创 SELinux 的端口号权限以及使用 semanage 工具添加权限
当应用程序服务器开始监听端口号时,selinux会检查端口号的安全上下文scontext类型和程序的源secontext类型,如果发现程序并没有绑定该端口号的权限,例如发现该端口号只属于保留端口号,则会禁止deny程序绑定端口的操作,导致服务器无法正常启动。此时可以通过semanage来增加需要绑定的端口的secontext类型,例如给82端口增加类型,这样服务器程序就具有82端口的绑定权限了。
2024-11-19 14:39:17
997
原创 Apache和HTTPS证书的生成与安装
介绍linux系统下使用openssl生成https证书,并将证书安装在apache服务器上,最终实现通过https访问服务器。这个过程涉及到openssl生成自签名证书(适用于测试环境),修改apache配置,开放防火墙https端口等过程。
2024-11-17 20:40:15
1153
原创 selinux处于enforce模式下阻止访问向量缓存(AVC)的日志分析和解决思路
当selinux安全策略处于enforce模式下时,无法启动http服务器,可能是因为某个文件/文件夹(例如openssl证书)的安全上下文(Security Context)配置不当,引起应用层服务无法访问。
2024-11-17 18:26:22
786
原创 前后端交互之时区统一
前端在向后端传递时间类型的文本时,默认的时区是UTC时间若后端使用的时区是GMT,例如使用JDBC连接Mysql时使用了参数serverTimezone=Asia/Shanghai那么就会出现下面的情况前端传输的时间默认时区为+0000{"expireTime": "2021-01-14T11:51:00.000"} 数据库存储的时间两者差了8小时这样会不统一的时区会导致我们在比较时间先后时出现误差解决办法是在传时间文本时指定时区为东八区,即指定时区为+0800
2021-01-14 11:17:17
2214
原创 spring boot使用servletFilter实现重定向
后端在接受"/api/*“请求时没有代理,使用filter转发地址为”/**"1. 注入启动器@SpringBootApplication@ServletComponentScan // 注入filterpublic class App{ ...}2. 编写filter重定向逻辑@WebFilter(urlPatterns = "/api/*", filterName = "ApiFilter")public class ApiFilter implements Filter {
2021-01-05 10:46:38
2360
转载 vmvare瘦身
首先感谢autobahn文章的启示。我这里把我踩到的坑填上。直上干货!一、前提:要求是分割磁盘磁盘的虚拟机文件。(这里我并不确定单磁盘的行不行,反正我的是分割磁盘的)如果你在安装虚拟机,或者创建虚拟机硬盘的时候选择的是一块硬盘,那么你要保证未使用的空间至少50%,所以虚拟机创建的时候,最好分割磁盘。如图红色标志:二 、打开虚拟机 如果是ubuntu1 、sudo apt-get clean 清除残留的安装包 (可以不执行此步)2 、sudo dd if=/dev/zero of=/0bits bs
2020-12-14 09:14:10
268
原创 docker 部署nginx遇到502解决方法之一
1. 查看docker logs原因之一是由防火墙引起的Nginx connect() failed (113: No route to host) while connecting to upstream2.查看firewall服务状态systemctl status firewalld# 和firewall-cmd --state开启、重启、关闭、firewalld.service服务# 开启service firewalld start# 重启service firewal
2020-12-08 15:14:22
4432
3
原创 docker 部署mysql5.7服务
1. 拉取docker镜像docker pull mysql/mysql-server:5.72. 创建容器docker run --name mysql5.5 -p 3308:3306 -e MYSQL\_ROOT\_PASSWORD=123456 -d mysql/mysql-server:5.5参数介绍–name 容器名字-p 3308:3306 物理机端口:容器内部端口-e 运行参数 初始化 root 用户的密码-d 后台运行 mysql/mysql-server:5.5 下载
2020-12-07 15:58:55
141
原创 vue 表单验证使用要点
1.准备表单 <el-form ref="passwordForm" :model="form" :rules="loginRules" label-width="120px" label-position="left"> <el-form-item label="新密码" prop="password"> <el-input v-model="form.password" placeholder="请输入新密码" />
2020-12-03 11:39:45
150
原创 vue-父组件与子组件传值的简单实例 附完整代码
父组件 <updatePassword :dialog-visible="true" />子组件template内容并不重要,但还是贴出来<template> <div> <el-dialog :visible.sync="dialogVisible" title="修改密码" width="30%"> <el-form :model="user" label-width="120px" label-position="l
2020-12-03 11:26:05
437
翻译 Django REST Framework 嵌套查询的性能优化
在 DRF 视图中,我们每次序列化有嵌套关系的数据时都会出现问题,如下面的例子:class CustomerSerializer(serializers.ModelSerializer): # This can kill performance! order_descriptions = serializers.StringRelatedField(many=True) # So can this, same exact problem... orders = Ord
2020-07-20 09:40:00
682
原创 django rest framework 排序与过滤
视图类from django_filters.rest_framework import DjangoFilterBackendfrom rest_framework.filters import SearchFilter, OrderingFilterclass xxxView( mixins.ListModelMixin, viewsets.GenericViewSet): serializer_class = xxxSerializer queryset =
2020-07-14 15:07:25
360
原创 python lambda优雅地实现缓存管理
以下代码可以使用装饰器灵活地删除缓存 @wipe_cache(lambda request: user_roles_key(request.userId), 1) def update(self, request, *args, **kwargs): ...def wipe_cache_p(key_fun, key_position): def wrapper(func): def inner(*args, **kwargs): ret =
2020-06-05 09:23:15
259
原创 vue优雅地读取嵌套数据
<el-table-column> <template slot-scope="{row}"> <el-tag> {{row.xxx.xxx}} </el-tag> </template> </el-table-column>这样写可能会报错Cannot read property ‘xxx’ of null可以...
2020-05-27 09:07:52
647
原创 js集合与python集合的一个差异
let a = new Set([1]) // Set(1) {1}let b = new Set([[1]]) //Set(1) {Array(1)}// 这样命名是ok的a = {1} # {1}a = {[1]} # 会报错 TypeError: unhashable type: 'list' 并且在js中let a = new Set([1])a.add([1])// 得到 Set(2) {Array(1), Array(1)} 没有去重...
2020-05-25 13:30:19
180
原创 python优雅地实现线程安全
这是两个方法res = Queue.get_oldest()Queue.delete(res)一个是读取最旧数据,一个是删除它两个操作合在一起就是“出队列”但他不是线程安全的,在高并发下会出现同时读取/删除同一数据的情况此时可以这样写Rlock().acquire()try: res = Queue.get_oldest() Queue.delete(res)finally: Rlock().release()这样就避免出现不确定结果了...
2020-05-14 16:25:43
333
原创 python PIL处理灰度图二值化不彻底
要获得纯净的0,255两种灰度的图片,可以采用new 一个Image对象,模式为‘1’,再用阈值判断进行draw方法,代码:from PIL import Image, ImageDraw img2 = Image.new("1", img.size) draw = ImageDraw.Draw(img2) for x in range(0, img2.size[0]): for y in range(0, img2.size[1]):
2020-05-14 12:41:10
496
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人