GO-深入理解Sort
GO-深入理解SortGo 语言的 sort 包提供了对切片和用户自定义集合进行排序的功能。它的设计非常灵活,支持多种数据类型的排序,并且允许用户通过实现接口来自定义排序规则。以下是对 sort 包的深入解析,包括其核心接口、实现原理以及使用方法
核心接口type Interface interface { // Len 返回集合中的元素数量 Len() int // Less 返回索引为 i 的元素是否应该排在索引为 j 的元素之前 Less(i, j int) bool // Swap 交换索引为 i 和 j 的元素 Swap(i, j int)}
排序函数sort.Sort
对实现了 sort.Interface 接口的类型进行排序
exmaple:
package mainimport ( "fmt" "sort")type Person struct { Name string Age int}type ByAge []Personfunc (a ByAg ...
K8sController-CronJob(定时任务)
K8sController-CronJob(定时任务)
基于K8s v1.31
Cron Job支持用于每隔一段时间创建定期运行的批处理任务
CronJob定时表达式# ┌───────────── 分钟 (0 - 59)# │ ┌───────────── 小时 (0 - 23)# │ │ ┌───────────── 月的某天 (1 - 31)# │ │ │ ┌───────────── 月份 (1 - 12)# │ │ │ │ ┌───────────── 周的某天 (0 - 6)(周日到周六)# │ │ │ │ │ 或者是 sun,mon,tue,web,thu,fri,sat# │ │ │ │ │# │ │ │ │ │# * * * * *Minutes Hours DayofMonth Month DayofWeek
Minutes: , - * / 或者0-59的整数
Hours: , - * / 或者0-23的整数
DayofMonth: , - * / ? L W C或者0-3 ...
K8sController-Job(批处理任务)
K8sController-Job(批处理任务)
基于K8s 1.31
主要配置和工作机制apiVersion: batch/v1kind: Jobmetadata: name: hellospec: # 可以并行任务数量,默认1 parallelism: 3 completions: 3 # Pod完成模式,NonIndexed(数量达到completions推出,默认),Indexed # Indexed模式:会被设置为Pod服务名 # - 设置Pod名称:<Job Name>-<索引序号>-<随机字符串> # - 设置Annotation "batch.kubernetes.io/job-completion-index": <索引序号> # - 设置Label "batch.kubernetes.io/job-completion-index": <索引序号>,从K8s v1.28 需要开启PodIndexLabel特性门控 # - 在容器内注入环境变量JO ...
MySQL-PerformanceSchema
MySQL-PerformanceSchemaPerformanceSchemaPerformance Schema是提供了MySQL服务器内部运行的操作上的底层指标
消费者表实上,MySQL 8.0.25社区 版的performance_schema中包含110个表。基于它们的用途,可分为以 下几个类别。
当前和历史数据
存放事件的表名包含如下结尾:
*current 当前服务器上进行中的事件
_history 每个线程最近完成的10个事件
history_long 从全局来看,每个线程最近完成的10000个事件
_ _history和_history_long表的大小是可配置的
以下是当前和历史数据
events_waits 底层服务器等待,例如获取互斥对象
events_statements SQL查询语句
events_stages 配置文件信息,例如创建临时表或发
events_transactions 事务
汇总表和摘要:
汇总表保存有关该表所建议的内容的聚合信息。例如,memory_summary_by_thread_by_event_name表 ...
MySQL-schema设计与管理
MySQL-schema设计与管理选择数据库优化的数据类型常见原则:
更小的通用
简单为好
尽量避免存储NULL
MySQL为了兼容性支持很多别名,例如, INTEGER(映射到INT)、BOOL(映射到TINYINT)和NUMERIC(映射 到DECIMAL)。它们都只是别名。这些别名可能令人不解,但不会影响性 能。如果建表时采用数据类型的别名,然后用SHOW CREATE TABLE检 查,会发现MySQL报告的是基本类型,而不是别名
整数类型
有两种类型的数字:整数(whole number)和实数(real number,带有小数 部分的数字)。如果存储整数,可以使用这几种整数类型:TINYINT、 SMALLINT、MEDIUMINT、INT或BIGINT。它们分别使用8、16、24、32 和64位存储空间。可以存储的值的范围从-2(N-1)到2(N-1)-1,其中N是存 储空间的位数。
整数类型有可选的UNSIGNED属性,表示不允许负值,这大致可以使正数 的上限提高一倍。例如,TINYINT UNSIGNED可以存储的值的范围是0~ 255,而TINYINT的值的存 ...
MySQL-概论
MySQL-概论MySQL中的常见文件功能
mysqld:MySQL服务器程序
mysqld_safe:启动脚本,会间接调用mysqld并持续监控服务器的运行状态。当服务器出现错误的时候,可以帮助重启服务器程序。使用mysqld_safe启动MySQL服务器程序时,它将会将服务器程序出错信息和其他诊断信息输出到日志文件
错误日志默认写到一个.err拓展文件中
mysql.server:一个启动脚本,间接调用mysqld.safe,在执行mysql.server添加start就好了mysql.server start,停止MySQLmysql.server stop
mysql.server是一个链接文件,实际文件../support-files/mysql.server
mysql_mulit:起停多个数据库实例
登陆MySQL# -p 需要有空格# -P (大写) 数据库端口号mysql -h <host> -u <user> -p <password>
退出终端:
quit|exit|\q
系统变量# 查看系统变量show ...
CKAD考试经验2025
CKAD考试经验
证书镇楼
考试过程
整体考试不难,如果有一些K8s的使用经验,基本上都能做出来,但是我实际上是参与了第二次的复考,第一次因为没仔细阅读考前须知,不知道怎么开K8s文档,浪费了20分钟,最后以差3分未通过
第二次复考,大部分题目与第一次一样,最后也再检查一边以后,提前了半个小时就提交了,最后以82PASS了
其他问题:
俩次考试检察官都要求环境检查,但是感觉严格程度不一样,因为选用中文,所以考官用中文聊天,但是不确定是不是国人
整个考试中,终端我都用Mac无法实现复制粘贴,不过也不影响
第一次考试,浏览器K8s文档无法查看到全部,包括无法选用中文(未解之谜)
浏览器中不知道怎么用Ctrl + F的搜索,都靠上下滑动
K8sController-DaemonSet(在每个Node上仅运行一个Pod)
K8sController-DaemonSet(在每个Node上仅运行一个Pod)
基于K8s 1.31
DaemonSet概述DS的常见场景
在每个Node上运行一个共享存储的驱动守护进程,比如ceph driver
在每个Node上运行一个日志采集程序,采集Node上全部日志,比如flaunted
在每个Node上运行一个性能采集程序
配置信息apiVersion: apps/v1kind: DaemonSetmetadata: name: fluentdspec: # 修订历史最大数量 默认10 revisionHistoryLimit: 10 # 最短就绪时间 默认0 minReadySeconds: 5 # 更新策略 updateStrategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 selector: matchLabels: app: fluentd template: metadata: labels: app ...
K8sController-Deployment(无状态应用)
K8sController-Deployment(无状态应用)
基于K8s 1.31
什么是DeploymentDeployment是一种面向无状态应用的多个Pod副本进行自动化管理的工作负载控制器
常见场景:
部署一个或者多个副本应用
多副本的Pod的版本更新,以及部署过程的暂停和回滚
Pod副本数量的水平拓展缩容
Deploy管理能力apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deployment labels: app: nginx-deploymentspec: # 设置true,表述部署过程中属于暂停状态 paused: false # 修订历史最大数量 每个修订版本都有一个对应的RS资源 revisionHistoryLimit: 10 # Pod最短就绪准备时间,Pod至少达到这个时间,才会进入Pod为Ready状态 minReadySeconds: 5 # 设置未能处于部署完成的超时空时间,默认600s来,达到这个时间之后,会把Progressing的Status设置为f ...
CKAD模拟题A2025
CKAD Simulator Kubernetes 1.32Question 1 | Namespaces
Solve this question on instance: ssh ckad5601
The DevOps team would like to get the list of all Namespaces in the cluster. Get the list and save it to /opt/course/1/namespaces on ckad5601.
Answer:k get ns > /opt/course/1/namespaces
The content should then look like:
xxxxxxxxxx# /opt/course/1/namespacesNAME STATUS AGEdefault Active 136mearth Active 105mjupiter Active 105mkube-node-l ...