k8s自动化安装脚本(kubeadm-1.23.7)
文章目录
- 介绍
- 软件架构
- 版本介绍
- 更新内容
- 2023-02-19
- 2023-02-15
- 2023-02-14
- 2023-02-10
- 2022-10-20
- 2022-08-06
- 准备部署包
- 操作步骤
- 环境准备
- 结构
- 备注
- 解压部署包
- 修改host文件
- 脚本使用方式
- 初始化环境
- 验证ansible配置
- 安装k8s集群
- 登录master的节点
- 添加node节点
- master节点状态检查
- 组件安装
- 安装方式
- 访问prometheus
- 访问grafana
- 添加node-exporter面板
- ingress-nginx
- kuboard的安装
- 访问kuboard
- 纳管集群
- 证书查看
- kubeadm 命令查看
- openssl 命令查看
- kuboard界面查看
- 更新证书
- 验证证书有效期
- 部署包地址
- 总结
介绍
- 以1.21.1的脚本模板,重构k8s的部署方式(v1.23.7),添加私有仓库的部署及相关离线安装包的方式
- 通过kubeadm进行一键式部署k8s集群,根据不同的启动方式,可部署单节点、一主多从、多主多从高可用的k8s集群
- 通过ansible快速部署k8s的基础组件(nfs、helm、ingress、monitoring【联网|离线镜像】、kuboard【联网】)
软件架构
- 通过部署包中的run.sh进行统一入口,进行初始化环境(部署节点)
- ansible+shell实现自动获取host文件中的相关信息进行自动化部署
版本介绍
- 需要提前准备多台主机,根据准备机器的多少,修改
host文件,本环境是为了开发环境中快速部署k8s集群 - 采用kubeadn安装,采用本地yum仓库,版本是:1.23.7
- 安装docker的yum源是基于Centos7.5/7.6,版本是:23.0.1
- 安装ansible时,使用离线安装,版本: 2.9.27
- 安装helm时,使用离线安装,版本: v3.8.1
- 高可用安装时:采用haproxy(1.5.18-9)+keepalived(1.3.5-19)
- 添加kuboard:v3面板的安装(ansible)主机:单节点、单容器
更新内容
2023-02-19
- 修改k8s版本及docker的版本,优化后续修改源镜像的操作
- 去除dashboard面板,添加kuboard:v3面板的安装
2023-02-15
- 离线安装helm,同时repo add 仓库(联网)
- 默认不安装,控制按钮在
host文件中的k8s_helm_enable参数 - 添加
metrics-server组件,用于实现kubectl top pod(离线安装) - 默认安装,控制按钮在
host文件中的metrics_server_enable参数
2023-02-14
- 优化监控组件,通过github上找到的yaml,结合ansible进行自动化的部署到k8s集群上
- k8s master节点的第一台机器上
/opt/deploy/grafana/node_export.json文件可以导入到grafana平台上,用于监控物理机的机器资源信息 - prometheus-k8s服务是statefulsets的服务,且有资源限制,内存400Mi,过低会导致服务无法启动
- 安装监控组件时,需要确定服务的基础设施是否符合预期
2023-02-10
- 处理内核参数有几率加载失败的情况
- 重构初始化环境的脚本,减少初始化时出现的错误
- 如果失败,重新执行即可
- 重写设置主机名的角色,默认删除后覆盖
/etc/hosts文件 - 新增nfs服务的安装,可以通过
storageClassName: nfs-storage字段添加pvc- nfs目前只支持单节点部署,不支持自动化对应外部nfs
- 对接外部nfs需要手动修改对应的yaml即可,后续详细介绍
2022-10-20
- 添加kubeadm自动部署高可用版本,新增haproxy+keepalived
- 修复dashboard权限问题,添加ingress的部署方式(默认安装,通过)
- 部署包已更新至下述链接
2022-08-06
- 时间太久,忘记了。。。
准备部署包
https://download.csdn.net/download/qq_44246980/85695007
新版本未成功上传
操作步骤
环境准备
| 作用 | IP地址 | 操作系统 | 配置 |
|---|---|---|---|
| k8s-master01 | 192.168.1.21 | CentOS7 | 最低配置2C2G |
| k8s-master02 | 192.168.1.22 | CentOS7 | 最低配置2C2G |
| k8s-master02 | 192.168.1.23 | CentOS7 | 最低配置2C2G |
| k8s-node01 | 192.168.1.31 | CentOS7 | 最低配置2C2G |
| ansible | 192.168.1.31 | CentOS7 | 最低配置1C1G |
结构

- node节点可以填写多个,根据实际情况确认,但是不能超出单master节点的限制
- master节点至少是三个少一个都不是高可用版本
- 高可用版本
keepalived需要提前确认好vip- 建议机器处于同一网段中,或者同一局域网内
备注
- 建议单独找一台机器用于部署ansible服务,可以不接受
- 但是需要确保机器资源充足,且相关的端口不会冲突(38081【yum】、38082【registry】)
- 相关的网络关系需要提前确认
- 三台master节点,可以是2n+1台,目前因本地环境,只测试了三台master其他节点尚未涉及
解压部署包
#上传部署包(xshell)
cd /opt #目录随意
yum -y install lrzsz
rz install_k8s_kubeadm_v1.23.7_20230219.tar.gz
#解压
tar -xvf install_k8s_kubeadm_v1.23.7_20230219.tar.gz
修改host文件
#部署机器,初始脚本、安装包镜像
[deploy_server]
192.168.1.31 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 #多主多从
[kubernetes_master]
192.168.1.21 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master01"
192.168.1.22 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master02"
192.168.1.23 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master03"[kubernetes_node]
#192.168.1.23 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-node01"
#192.168.1.24 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-node02"#脚本导致添加必须是master01节点
[nfs]
#192.168.1.21 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22#双节点
[haproxy_keepalived]
192.168.1.21 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master01"
192.168.1.22 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master02"#不填写,则不安装镜像仓库
[docker_repositry]
#192.168.1.136 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-node01"[nodes:children]
kubernetes_master
kubernetes_node[all:vars]
#脚本解析主机信息,层级默认只能添加3个,即3个master,3个node
Number="3"
master_vip="192.168.1.120" #keepalived使用的vip
add_node_hosts="no" #添加主机信息(yes=合并,no=删除后新建[覆盖])######################################################################################
#布尔值true or false
Basic_enable="true" #安装基础软件包
set_host_enable="true" #设置主机名注入/etc/hosts文件
metrics_server_enable="true" #安装metrics_server,kubectl top pod
######################################################################################
#可选组件
######################################################################################
ingress_enable="false" #安装ingress服务
k8s_nfs_enable="false" #安装nfs-client服务,上述的地址必须填写,否则nfs客户端会启动失败
k8s_helm_enable="false" #k8s master节点安装helm客户端(在线)
######################################################################################
#监控组件、k8s v1.23.7版本以上(在线)
#监控组件的镜像采用在线的模式,需要联网自动下载,减少离线安装包的大小
#git clone https://github.com/prometheus-operator/kube-prometheus.git
monitoring_enable="false" #是否安装监控组件,默认不安装
clean_monitoring="false" #是否清理当前已安装的监控组件,注意,修改前需要确认监控组件已经部署完成后需要清理
#监控组件服务
nodeExporter_enable="true" #采集器node_export
prometheus_enable="true" #安装Prometheus服务
grafana_enable="true" #是否安装grafana服务
ControlPlane_enable="true" #部署k8s ControlPlane,控制面板,里面有很多的设置放在一起的,用来设置规则
prometheusAdapter_enable="true" #prometheusAdapter
prometheusOperator_enable="true" #prometheusOperatorkube_state_metrics_enable="false" #kube_state_metrics
alertmanager_enalbe="false" #是否安装alertmanager服务
blackboxExporter_enalbe="false" #是否安装blackboxExporter服务
- 一主多从需要把
kubernetes_master里只添加一个地址- 多主多从需要把
kubernetes_master里添加三个地址,脚本只支持添加三个master节点- 多主多从同时需要把
haproxy_keepalived角色填写
脚本使用方式
[root@registry]# cd /opt/deploy_install_k8s
[root@registry]# ls
host images init playbook README.md run.sh yum
[root@ansible install_k8s_kubeadm]# sh run.sh 【registry 2023-02-19 03:01:55】 sh run.sh init 初始化环境
----------------------------------------------------------------------------【registry 2023-02-19 03:01:55】 sh run.sh online 在线安装(kuboard、monitoring组件) 【registry 2023-02-19 03:01:55】 sh run.sh offline 离线安装k8s(1.23.7)
----------------------------------------------------------------------------【registry 2023-02-19 03:01:55】 sh run.sh ping 验证ansible的主机清单信息(ping) 【registry 2023-02-19 03:01:55】 sh run.sh install 通过host文件进行组件的单独安装
----------------------------------------------------------------------------【registry 2023-02-19 03:01:55】 sh run.sh load offline 保存离线镜像包(monitoring组件) 【registry 2023-02-19 03:01:55】 sh run.sh load warehouse 导入上面保存的组件 【registry 2023-02-19 03:01:55】 sh run.sh load help 帮助信息 #1. 执行run.sh脚本,获取脚本的执行帮助信息
#2. sh run.sh init 初始化ansible机器,初始化环境章节详细介绍
#3. sh run.sh online 在线安装(kuboard、monitoring组件) ,相关组件的镜像未合并到registry镜像里(减少安装包的大小)
#4. sh run.sh online 离线安装(kuboard、monitoring组件),通过脚本在线下载并保存离线镜像包,然后配合脚本导入离线环境的机器中使用
#5. sh run.sh ping 验证ansible的网络是否正常通信
#6. sh run.sh install 默认在线安装基础组件(monitoring组件),其他的组件则存放在本地的registry镜像仓库里
#7. sh run.sh load offline 虚拟机解压安装包后,执行初始化环境,联网状态下下载(monitoring组件)的离线镜像并打包,存放/tmp
#8. sh run.sh load warehouse 拷贝离线包,到执行目录(执行后提示/tmp/offline/)
初始化环境
[root@registry install_k8s_kubeadm]# sh run.sh online
Online(在线) Dashboard
----------------------------------------------------------------------------
1) 初始化环境(ansible))
2) 安装k8s集群[一主多从](1.23.7)
3) 安装k8s集群[多主多从](1.23.7)
4) 添加k8s node节点(1.23.7)
5) 更新k8s certs,续费10年(1.23.7)
----------------------------------------------------------------------------
6) docker安装kuboard(v3)[在线安装]
7) k8s安装其他组件(nfs、monitoring、ingress)[在线安装]
----------------------------------------------------------------------------
请输入对应的数字编号:1
请输入部署机的地址(192.168.1.31):【registry 2023-02-19 03:01:24】 docker-ce-23.0.1-1.el7.x86_64已安装,不需要重新部署 【registry 2023-02-19 03:01:24】 docker服务已正常启动!!! 【registry 2023-02-19 03:01:24】 /var/images/deploy Ready to complete
-----------------------------------------------------------------------------------------
Loaded image: registry.bcbx.com:38082/bcbx_registry:v1.0.0【repositry.tar】 load repository success
----------------------------------------------------------------------------------------- 【registry 2023-02-19 03:01:25】 /var/images/repositry Ready to complete 【registry 2023-02-19 03:01:25】 clear /var/images/repositry,please wait!!!
----------------------------------------------------------------------------------------- 【registry 2023-02-19 03:01:25】 registry rm success 【registry 2023-02-19 03:01:25】 start the image registry success
----------------------------------------------------------------------------------------- 【registry 2023-02-19 03:01:27】 yum_repo rm success 【registry 2023-02-19 03:01:27】 start the image yum_repo success
----------------------------------------------------------------------------------------- 【registry 2023-02-19 03:01:29】 ansible-2.9.27-1.el7.noarch已安装,不需要重新部署 【registry 2023-02-19 03:01:29】 Ansible.cfg配置文件修改成功
#部署机的地址,通过脚本过去的地址,确认无误后直接回车即可
出现上述错误,则重新执行一下
结果如下

- 安装docker服务
- 安装ansible服务,修改配置文件
- 准备离线yum仓库
- 准备离线registry仓库,相关挂载点是:/var/images/
验证ansible配置
sh run.sh ping

安装k8s集群
[root@registry install_k8s_kubeadm]# sh run.sh online
Online(在线) Dashboard
----------------------------------------------------------------------------
1) 初始化环境(ansible))
2) 安装k8s集群[一主多从](1.23.7)
3) 安装k8s集群[多主多从](1.23.7)
4) 添加k8s node节点(1.23.7)
5) 更新k8s certs,续费10年(1.23.7)
----------------------------------------------------------------------------
6) docker安装kuboard(v3)[在线安装]
7) k8s安装其他组件(nfs、monitoring、ingress)[在线安装]
----------------------------------------------------------------------------
请输入对应的数字编号:3
#host文件需要提前修改
#确认host中用户名、密码、ip正确且网络连接正常后,回车,等待执行脚本结束
执行结果如下:

登录master的节点

添加node节点
- 在host文件下的kubernetes_node分组下添加新增的需要新增的节点,并把之前已添加的节点删除
- 修改后执行 sh run.sh online脚本,选择4,添加node节点
- 脚本正常执行完毕后,检查各个节点的/etc/hosts文件,如果确认对应的域名解析,需要手动添加对应的主机关系
- 注意:每次添加node节点时,需要把已填入集群的节点手动删除,否则会出现重复加入的操作导致剧本执行失败
sh run.sh online

master节点状态检查

组件安装

- 默认不安装,手动修改后安装,可以在按照k8s集群后进行安装使用
- 也可以在安装集群的是否安装
安装方式
[root@k8s-node01 install_k8s_kubeadm]# sh run.sh install
- 需要前修改上述图片中的布尔值,改为true时,开始执行安装
- 因本地环境资源不足,不做演示截图
访问prometheus
访问地址: http://k8s-ip:30090/
访问grafana
访问地址: http://k8s-ip:30000/
登陆密码: admin/admin
添加node-exporter面板
- 下载k8s master节点的第一台机器上
/opt/deploy/grafana/node_export.json文件- 通过浏览器登陆grafana平台,通过Dashboards按钮,鼠标停放,选择import
- 出现导入界面,选择upload json file按钮,选择下载到本地的文件
- 其他都是自动填充的,最后一个选择prometheus data source数据源后点击导入即可
ingress-nginx

使用方式,自行百度
kuboard的安装
#在线下载,网速较慢的情况下建议使用云主机下载
docker pull swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3
docker save swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 -i kuboard.tar.gz
docker load -i kuboard.tar.gz
[root@registry ~]# docker load -i kuboard.tar.gz
2d8252e11370: Loading layer [==================================================>] 3.072kB/3.072kB
22d9813f1d6a: Loading layer [==================================================>] 9.216kB/9.216kB
331120fa4807: Loading layer [==================================================>] 23.75MB/23.75MB
b6e875ecbb12: Loading layer [==================================================>] 18.77MB/18.77MB
9b6a33d74d53: Loading layer [==================================================>] 42.52MB/42.52MB
87405db6d205: Loading layer [==================================================>] 2.024MB/2.024MB
c502deb85597: Loading layer [==================================================>] 28.67kB/28.67kB
f062a9dd21ed: Loading layer [==================================================>] 61.95kB/61.95kB
20f6f032efed: Loading layer [==================================================>] 42.06MB/42.06MB
ba47fe085ef6: Loading layer [==================================================>] 13.32MB/13.32MB
Loaded image: swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3#网速ok,则无需上述操作,直接执行即可
[root@registry install_k8s_kubeadm]# sh run.sh online

访问kuboard
http://ansible-ip:18080
纳管集群

- 详细功能请查看kuboard的官方
- https://www.kuboard.cn/
证书查看
kubeadm 命令查看
#可以通过 kubeadm alpha certs check-expiration 命令查看相关证书是否过期。
#注:该命令仅在 v.15 之后的版本可用
kubeadm alpha certs check-expiration
# k8s v1.23.7
kubeadm certs check-expiration

openssl 命令查看
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '

kuboard界面查看

更新证书
Kubenetes通过脚本自动更新证书有效期脚本来源
[root@registry install_k8s_kubeadm]# sh run.sh online
Online(在线) Dashboard
----------------------------------------------------------------------------
1) 初始化环境(ansible))
2) 安装k8s集群[一主多从](1.23.7)
3) 安装k8s集群[多主多从](1.23.7)
4) 添加k8s node节点(1.23.7)
5) 更新k8s certs,续费10年(1.23.7)
----------------------------------------------------------------------------
6) docker安装kuboard(v3)[在线安装]
7) k8s安装其他组件(nfs、monitoring、ingress)[在线安装]
----------------------------------------------------------------------------
请输入对应的数字编号:5

验证证书有效期

部署包地址
链接:https://pan.baidu.com/s/1Q31dwjvQJVZOZWxbR4Uv7w?pwd=bcbx
提取码:bcbx
总结
- 上述则是当前部署中可运行正常的服务
- 执行
sh Run.sh init,则可以调试脚本,对应的启动文件,修改,则可以进行调试- 执行
sh Run.sh install,修改host文件,则可以进行安装组件
相关文章:
k8s自动化安装脚本(kubeadm-1.23.7)
文章目录介绍软件架构版本介绍更新内容2023-02-192023-02-152023-02-142023-02-102022-10-202022-08-06准备部署包操作步骤环境准备结构备注解压部署包修改host文件脚本使用方式初始化环境验证ansible配置安装k8s集群登录master的节点添加node节点master节点状态检查组件安装安…...
面试题记录
Set与Map的区别 map是键值对,set是值的集合。键,值可以是任何类型map可以通过get获取,map不能。都能通过迭代器进行for…of遍历set的值是唯一的,可以做数组去重,map,没有格式限制,可以存储数据…...
链式前向星介绍以及原理
1 链式前向星 1.1 简介 链式前向星可用于存储图,本质上是一个静态链表。 一般来说,存储图常见的两种方式为: 邻接矩阵邻接表 邻接表的实现一般使用数组实现,而链式前向星就是使用链表实现的邻接表。 1.2 出处 出处可参考此…...
jenkins 安装 -适用于在线安装 后续写个离线安装的
jenkins安装1.下载jenkins2.安装启动3.附件卸载jdk的命令4.配置jenkins一、在jenkins配置文件中配置jdk环境变量二、修改jenkins默认的操作用户1.下载jenkins jenkins官网下载 https://www.jenkins.io/ 点击下载 我是centos系统所以选择centos,点击后按着官方提供…...
【C++】再谈vscode界面调试C++程序(linux) - 知识点目录
再谈vscode界面调试C程序(linux) 配套文档:vscode界面调试C程序(linux) 命令解释 g -g ../main.cpp 编译main.cpp文件; -g:生成调试信息。编译器会在可执行文件中嵌入符号表和源代码文件名&…...
蚂蚁感冒---第五届蓝桥杯真题
目录 题目链接 题目描述 分析: 代码: y总综合 666 题目链接 1211. 蚂蚁感冒 - AcWing题库 题目描述 分析: y总真牛逼,掉头等价于穿过,以第一个点为分界点,分别判断 代码: (自…...
常见排序算法--Java实现
常见排序算法--Java实现插入排序直接插入排序折半插入排序希尔排序交换排序冒泡排序快速排序选择排序直接选择排序堆排序归并排序基数排序各种排序方法比较在网上找了些排序算法的资料。此篇笔记本人总结比较,简单注释,觉得比较好理解,且相对…...
算法笔记(九)—— 暴力递归
暴力递归(尝试) 1. 将问题转化为规模缩小了的同类问题子问题 2. 有明确的不需要的继续递归的条件 3. 有当得到子问题结果之后的决策过程 4. 不记录每一个子问题的解 Question:经典汉诺塔问题 1. 理解清楚,基础三个圆盘的移动…...
Flask框架学习记录
Flask项目简要 项目大致结构 flaskDemo1 ├─static ├─templates └─app.py app.py # 从flask这个包中导入Flask类 from flask import Flask# 使用Flask类创建一个app对象 # __name__:代表当前app.py这个模块 # 1.以后出现bug,可以帮助快速定位 # 2.对于寻找…...
【Opencv 系列】 第6章 人脸检测(Haar/dlib) 关键点检测
本章内容 1.人脸检测,分别用Haar 和 dlib 目标:确定图片中人脸的位置,并画出矩形框 Haar Cascade 哈尔级联 核心原理 (1)使用Haar-like特征做检测 (2)Integral Image : 积分图加速特征计算 …...
信源分类及数学模型
本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:information-theory】,需要的朋友们自取。或者公众号【AIShareLab】回复 信息论 也可获取。 文章目录信源分类按照信源…...
Games101-202作业1
一. 将模型从模型空间变换到世界空间下 在这个作业下,我们主要进行旋转的变换。 二.视图变换 ,将相机移动到坐标原点,同时保证物体和相机进行同样的变换(这样对形成的图像没有影响) 在这个作业下我们主要进行摄像机的平移变换&am…...
Linux系统之终端管理命令的基本使用
Linux系统之终端管理命令的基本使用一、检查本地系统环境1.检查系统版本2.检查系统内核版本二、终端介绍1.终端简介2.Linux终端简介3.终端的发展三、终端的相关术语1.终端模拟器2.tty终端3.pts终端4.pty终端5.控制台终端四、终端管理命令ps1.直接使用ps命令2.列出登录详细信息五…...
【Mongoose笔记】MQTT 服务器
【Mongoose笔记】MQTT 服务器 简介 Mongoose 笔记系列用于记录学习 Mongoose 的一些内容。 Mongoose 是一个 C/C 的网络库。它为 TCP、UDP、HTTP、WebSocket、MQTT 实现了事件驱动的、非阻塞的 API。 项目地址: https://github.com/cesanta/mongoose学习 下面…...
数据结构概述
逻辑结构 顺序存储 随机访问是可以通过下标取到任意一个元素,即数组的起始位置下标 链式存储 链式存储是不连续的,比如A只保留了当前的指针,那么怎么访问到B和C呢 每个元素不仅存储自己的值还使用额外的空间存储指针指向下一个元素的地址&a…...
【前端】Vue3+Vant4项目:旅游App-项目总结与预览(已开源)
文章目录项目预览首页Home日历:日期选择开始搜索位置选择上搜索框热门精选-房屋详情1热门精选-房屋详情2其他页面项目笔记项目代码项目数据项目预览 启动项目: npm run dev在浏览器中F12: 首页Home 热门精选滑动到底部后会自动加载新数据&a…...
51单片机蜂鸣器的使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、有源蜂鸣器和无源蜂鸣器的区别二、代码编写总结前言 本文旨在介绍如何使用51单片机驱动蜂鸣器。 一、有源蜂鸣器和无源蜂鸣器的区别 有源蜂鸣器是一种电子…...
算法练习-链表(二)
算法练习-链表(二) 文章目录算法练习-链表(二)1. 奇偶链表1.1 题目1.2 题解2. K 个一组翻转链表2.1 题目2.2 题解3. 剑指 Offer 22. 链表中倒数第k个节点3.1 题目3.2 题解3.2.1 解法13.2.2 解法24. 删除链表的倒数第 N 个结点4.1 …...
LabVIEW使用实时跟踪查看器调试多核应用程序
LabVIEW使用实时跟踪查看器调试多核应用程序随着多核CPU的推出,开发人员现在可以在LabVIEW的帮助下充分利用这项新技术的功能。并行编程在为多核CPU开发应用程序时提出了新的挑战,例如同步多个线程对共享内存的并发访问以及处理器关联。LabVIEW可自动处理…...
【go语言grpc之client端源码分析二】
go语言grpc之server端源码分析二DialContextparseTargetAndFindResolvergetResolvernewCCResolverWrapperccResolverWrapper.UpdateStatecc.maybeApplyDefaultServiceConfigccBalancerWrapper.updateClientConnState上一篇文章分析了ClientConn的主要结构体成员,然后…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
