Gavin Blog

Every cloud has a silver lining!

K8S集群内运行gitlab-runner

集群实践

长安一片月 万户捣衣声 前提 可用的k8s集群 可用的gitlab service k8s集群和gitlab service之间可通信 部署gitlab-runner 拉取gitlab-runner镜像 因为处于内网,k8s自动拉取镜像太慢,因此我在一台可直连外网的机器上先手动拉取镜像 docker pull gitlab/gitlab...

C++指针参数问题

纪录

共眠一舸听秋雨 小簟轻裘各自寒 问题描述 刷题时,向通过将指针传递给函数,改变其指向的位置,将结果返回,却发现指针依然指向原来的位置,因此打算探究一下 编程探究 #include <iostream> #include <vector> #include <map> using namespace std; void FindNum...

Operator初探

概念介绍

解把飞花蒙日月 不知天地有清霜 operator 使用 功能 简言之,operator就是自定义资源对象的自定义controller,将应用的安装、配置、配置更新、升级、回滚、故障处理、备份等运维活动全部封装到代码中。在没有引入operator之前,应用被视为k8s基本对象如pod、deployments、configmaps等的集合,运维粒度也停留在k8s资源对象层面,...

Socket编程(六)

I/O复用

直道相思了无益 未妨惆怅是清狂 概念 前言 I/O复用能够使程序同时监听多个文件描述符,提高程序性能,一般来说下列情况需要使用I/O复用: 客户端程序需要同时处理多个socket,比如非阻塞connect技术 客户端程序需要同时处理用户输入和网络连接,比如聊天室程序 TCP服务器要同时处理监听socket和连接socket,这是I/O复用使用最多的场合 ...

Kubernetes单机节点

使用kubeadm

野旷天低树 江清月近人 Kubeadm配置单机master节点问题及解决 无法访问k8s.gcr.io W1205 13:36:25.669152 18639 version.go:101] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s...

Socket编程(五)

高性能服务器程序框架

但使主人能醉客 不知何处是他乡 前言 这是服务器程序的总览,服务器一般可解构为如下三个主要模块: I/O处理单元(四种I/O模型,两种高效事件处理模式) 逻辑单元(两种高并发模式,有限状态机) 存储单元 服务器模型 C/S模型 TCP/IP协议在设计和实现上并没有区分服务端和客户端,在通信过程中每个机器都是对等的。但是由于资源...

内网穿透

利用FRP访问校园网服务

迟迟钟鼓初长夜 耿耿星河欲曙天 前言 需求 我们往往会产生在家想要访问工作环境的需求,比如放寒假回家了,我想要访问学校知网,但是知网会认证学校IP呀,一般来说,学校往往会提供VPN或RVPN服务,但是,如果不提供怎么办呢?这时就需要使用内网穿透技术了。 内网穿透技术本质上是在内网和外网之间建立稳定通道的技术,如下图所示,笔记本想要ssh登陆内网服务器,但是不在同一局域网下...

Socket编程(四)

Linux服务器程序规范

雪里开花却是迟 何如独占上春时 服务器程序规范 Linux服务器程序一般以后台进程(daemon)形式运行,没有控制终端,因而没有意外输入,其父进程一般是init进程 Linux服务器程序通常有一套日志系统,至少输出日志文件,或者传输到专门日志服务器 Linux服务器程序一般以专门的非root身份运行 Linux服务器程序通常是可配置的 Linux服务...

Socket编程(三)

高级I/O API

细雨斜风作晓寒 淡烟疏柳媚晴滩 readv和writev #inlcude <sys/uio.h> ssize_t readv(int fd, const struct iovec* vec, int count) ssize)t writev(int fd, struct iovec* vec, int count) readv将数据从文件描述符读到分散的...

Socket编程(二)

简单cgi服务器

无情最是台城柳 依旧烟笼十里堤 重定向 有时我们想把标准输入重定向到一个文件,或者把标准输出重定向到一个网络连接(比如CGI编程),可以通过dup或dup2函数实现 #include <unistd.h> int dup(int fd) int dup2(int fd1, int fd2) dup函数创建一个新的文件描述符,该新文件描述符与原描述符指向相同...