08 2023 档案
摘要:关于通过各种方法下载k8s相关镜像的方法总结如下: 1.使用[Azure中国镜像站](http://mirror.azure.cn/help/gcr-proxy-cache.html),目前限制只能“Azure China IP”可用,不再对外提供服务,此路不通。 2.直接使用mirrorgoogl
阅读全文
摘要:之所以会用到OCR工具,是因为在看一些扫描版的PDF文档时,有时候需要复制粘贴一些文字,特别是技术性文档,对于一些命令或者代码片段需要复制出来执行验证。 网络上有许多推荐OCR工具的文章,但是大多数都是厂商软文,而且都需要付费。本人在经过实际使用之后认为有2款开源免费的工具非常不错,推荐给大家。 *
阅读全文
摘要:Kubernetes除了提供了基于CA证书的认证方式,也提供了基于`HTTP Token`的简单认证方式。各客户端组件与API Server之间的通信方式仍然采用HTTPS,但不采用CA数字证书。这种认证机制与CA证书相比,安全性很低,在生产环境不建议使用。 采用基于`HTTP Token`的简单认
阅读全文
摘要:## 概述 在Node上需要部署`Docker`、`kubelet`、`kube-proxy`,在成功加入Kubernetes集群后,还需要部署CNI网络插件、DNS插件等管理组件。 本节以将192.168.3.138和192.168.3.139两台主机部署为Node为例进行说明。 在部署之前,先确
阅读全文
摘要:如下以二进制文件方式部署安全的Kubernetes Master高可用集群,具体步骤如下: 1.下载Kubernetes服务的二进制文件 2.部署kube-apiserver服务 3.创建客户端CA证书 4.创建客户端连接kube-apiserver服务所需的kubeconfig配置文件 5.部署k
阅读全文
摘要:## 概述 前提条件:已经准备好CA根证书(etcd在制作CA证书时需要CA根证书),并且把CA根证书文件`ca.key`和`ca.crt`拷贝到3个etcd节点的`/etc/kubernetes/pki`目录下。 3台主机的IP地址分别为`192.168.3.135`、`192.168.3.136
阅读全文
摘要:为etcd和Kubernetes服务启用基于CA认证的安全机制,需要CA证书进行配置。 如果组织能够提供统一的CA认证中心,则直接使用组织颁发的CA证书即可。如果没有统一的CA认证中心,则可以通过颁发自签名的CA证书来完成安全配置。 如下以通过颁发自签名的CA证书来完成安全配置。 etcd和Kube
阅读全文
摘要:为了k8s集群能正常运行,需要先完成4项准备工作: 1.关闭防火墙 2.禁用SeLinux 3.关闭Swap 4.安装Docker ## 关闭防火墙 ```shell # 查看防火墙状态 getenforce #关闭防火墙,禁用防火墙开机自启动 systemctl stop firewalld sy
阅读全文
摘要:在Kubernetes系统中,Master节点扮演着总控中心的角色,通过不间断地与各个工作节点(Node)通信来维护整个集群的健康工作状态,集群中各资源对象的状态则被保存在etcd数据库中。 在正式环境中应确保Master的高可用,并启用安全访问机制,至少包括以下几方面。 - Master的`kub
阅读全文
摘要:## 在Goland中运行单元测试报错`Error: Cannot find package` 如下图,在Goland中运行单元测试时报错:“Error: Cannot find package” `即可。 ### Dial()函数 `Dial()`函数的原型如下: ```golang func Dial(network, address strin
阅读全文
摘要:## Socket编程 Golang语言标准库对Socket编程进行了抽象,无论使用什么协议建立什么形式的连接,都只需要调用`net.Dial()`即可。 ### Dial()函数 `Dial()`函数的原型如下: ```golang func Dial(network, address strin
阅读全文
摘要:## 并发基础 并发包含如下几种主流的实现模型: - 多进程 - 多线程 - 基于回到的非阻塞/异步IO - 协程 ## 协程 与传统的系统级线程和进程相比,协程最大的优势在于“轻量级”,可以轻松创建上百万个而不会导致系统资源枯竭,而线程和进程通常最多不超过1万个。 Golang在语言级别支持协程,
阅读全文
摘要:## 类型系统 类型系统是指一个语言的类型体系结构,一个典型的类型系统通常包含如下基本内容: - 基础类型,如:byte、int、bool、float等 - 复合类型,如:数组、结构体、指针等 - 可以指向任意对象的类型(Any类型) - 值语义和引用语义 - 面向对象,即:所有具备面向对象特征(比
阅读全文
摘要:## error接口 Golang中有一个关于错误处理的标准模式,即:`error`接口。 ```golang type error interface { Error() string } ``` 对于大多数函数,如果要返回错误,大致上都可以定义为如下模式: ```golang func Foo(
阅读全文
摘要:## 函数定义 函数的基本组成:关键字func,函数名,参数列表,返回值,函数体,返回语句。 示例如下: ```golang func Add(a int, b int) (ret int, err error) { if a < 0 || b < 0 { err = errors.New("sho
阅读全文
摘要:Golang支持如下4种流程控制语句: 1. 条件语句:if,else和else if 2. 选择语句:switch,case和select 3. 循环语句:for,range 4. 跳转语句:goto ## 条件语句 示例代码: ```golang a := 3 if a = 0 && i = 4
阅读全文
摘要:## 数据类型概述 Golang语言内置了如下基础数据类型: - 布尔类型:bool - 整型:int8,unit8,int16,uint16,int32,uint32,int64,uint64,int,uint,uintptr - 浮点类型:float32,float64 - 复数类型:compl
阅读全文
摘要:## 什么在常量 在Golang中,常量是指在编译期就已知且不可改变的值。 ## 字面常量 在程序中硬编码的常量值被称为字面常量,如: ```golang -12 // 整数类型常量 3.1415926 // 浮点类型常量 3.2+12i // 复数类型常量 true // 布尔类型常量 "foo"
阅读全文
摘要:## 为什么使用网关 Dubbo服务本身没有暴露HTTP接口,客户端(如:Web,APP)无法直接调用其提供的方法。 而[APISIX](https://apisix.apache.org/zh/)可以通过[dubbo-proxy插件](https://apisix.apache.org/zh/do
阅读全文
摘要:## APISIX是什么 [Apache APISIX](https://apisix.apache.org/zh/docs/apisix/getting-started/)是Apache软件基金会下的云原生API网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)
阅读全文
摘要:## 问题描述 CentOS版本:8.5.2111。 ```shell # cat /etc/redhat-release CentOS Linux release 8.5.2111 ``` 安装准备: ```shell # 安装所需软件包 sudo yum install -y yum-utils
阅读全文
摘要:## 写在前面 今天在阅读`ThreadPoolExecutor`源码的时候觉得有些地方理解起来似是而非,很别扭!最后才猛然发现,原来是我自己的问题:没有真正理解Runnable和Thread的含义! 我之前对于`Runnable`和`Thread`理解的误区在于:“Runnble和Thread是实
阅读全文