随笔记录一下

一、容器化/虚拟化

《每天5分钟玩转Kubernetes》
《第五版-Kubernetes权威指南_从Docker到Kubernetes实践全接触(第5版)》 318
《每天5分钟玩转Docker容器技术》
《每天5分钟玩转openstack》 仅前几章

OpenStack学习 https://www.bilibili.com/video/BV13s411371G?p=9
Docker容器技术高级应用实战 BV1Zb411574S

二、阿里云产品

阿里云架构全解 https://www.bilibili.com/video/BV1xY4y1b7gu?p=2

三、监控(zabbix)

四、数据库(mysql 、 oracle)

黑马mysql https://www.bilibili.com/video/BV1vJ411N7zb

谭老师oracle: 引航 、深入 、集群RAC 来源:BV1t4411E7ja

其他

xuegod的jumpserver
OB的jumpserver  https://www.bilibili.com/video/BV1pS4y1S72P
OB的tomcat   https://www.bilibili.com/video/BV14G4y1i7Zg

#2022-09
OB的redis: https://www.bilibili.com/video/BV1Eg411T7dW

2022-09 ~ 2022-10
oldguo的DB课程 (mysql、redis、MongoDB) 

2022-10
牛客網 SQL练习
陈涛-阿里云 https://www.bilibili.com/video/BV1nP4y1f7Z9


2022年12月
再战k8s  ob-李永信  https://www.bilibili.com/video/BV1jv4y127wg
小D课堂  k8S
Kubernetes运维简明教程  张老师 51cto   (2023年1月3日)
2023年1月18日
Q风  SpringCloud+Kubernetes 微服务容器化交付实战
杜K  k8s章节01~章节11

2023年1月31日
x超  k8s章节01~21

2023年2月9日
Q风   《Kubernetes入门到进阶实战,系统性掌握K8s生产实践》
2023年2月15日
阿L   《高级-微服务容器化迁移》、《中级-第14章:部署JavaPHP网站项目案例》
杜K   《21-DevOps篇-SpringCloud容器化原理及生产建议》

2023年2月19日
#2023年3月5日 学了有90%了
ob-王导 k8s-微服务dubbo项目  BV1QV411H7Gg

2023年3月9日
ob HAProxy BV1J4411F76B

2023年3月12日
old徐  DNS服务/bind/named/rndc   51的course/29005.html
周sir  域名购买/云服务器购买/域名解析/云服务器管理/ 网站备案与经营许可/公网安备 51的course/24658.html
old徐  Iptables+Firewalld防火墙   course/29004.html  
old徐  负载均衡LVS                course/29001.html
old徐  负载均衡Haproxy2.2版本     course/29002.html

2023年3月21日
old王 Jenkins+Gitlab微服务部署项目实战 (pig4cloud微服务)(jdk、maven、git、mysql、redis)  course/30309.html

2023年3月24日
ob-李导 zbx6   BV16G4y1K7yv   链接: https://pan.baidu.com/s/1uqAwzvd_ot9EWW6wtpMzPw?pwd=ucja 提取码: ucja 
ob-李导 《DELL R710物理服务器》-介绍服务器,远程控制卡,配置raid,启动盘-U盘,安装系统等  BV1rb411n7a8

2023年3月31日
士b马  《k8s面试29连问》 BV19L41197cb  
啊L    CKS    1~24小结  BV1NM4y1k7wb
2023年4月2日
x超  CKA BV1Xs4y1J7Ch  可参考:https://blog.csdn.net/weixin_46560589/article/details/128533308

2023年4月7日
Stars.Sky 的 k8s基础 https://blog.csdn.net/weixin_46560589/category_12059382.html
old徐。  k8s的《迁移Wordpress和SpringCloud微服务》  course/31242.html


2023年5月5日
近来实践ruoyi微服务,zookeeper 、kafka迁移到K8s

2023年5月8日 ~ 2023年5月24日
oldxu k8s之ELK 和 CICD

5月底 x超 Prometheus
2023年6月1日 ~ 2023年6月6日  oldxu ELK 7.8
2023年6月10日 oldxu的GitLab + Jenkins + Sonar Qube 持续集成实践
2023年6月18日 oldxu的ansible + zabbix
2023年6月24日 oldxu的新《Git、Jenkins、Ansible实践CICD》 

2023年10月    oracle 王二暖。 笔记参考:https://www.topunix.com/post-category/%e6%8a%80%e6%9c%af%e5%ad%a6%e4%b9%a0%e7%b3%bb%e5%88%97/wernoracle%e5%9f%b9%e8%ae%ad/page/2
2023年12月    Prometheus 林哥 51
2023年12月底  《大数据运维工程师从入门学习、自动化构建、故障汇总到架构设计》 高老师 51
             《Zabbix企业高可用架构与调优经验分享》 高老师 51

2024年随便学学

2024年1月12日	ob-5-迈进网站集群架构.(15小时)
学习内容:scp、rsync、nfs存储、sersync(文件实时同步工具)、openssh 、telnet 、ftp、openssh一键化密钥认证、teleport跳板机

2024年1月16日   ob8-网站集群之Tomcat (11小时)
学习内容:
● JVM-JRE-JDK 、部署tomcat、war包部署、配置tomcat-systemctl
● tomcat管理端、server.xml详解、虚拟主机配置,部署zrlog
● tomcat多实例、nginx与tomcat结合、tomcat集群动静分离。
● java故障排查(top、vmstat、iotop、jstack pid 、 jmap -heap javaPid 、使用show-busy-java-threads.sh排查。
  导出jvm: jmap -dump:file=xx.hprof,format=b javaPid
  使用eclipse MAT分析工具) 
● tomcat配置https认证、maven配置/打包、开启jmx监控功能
● lb(nginx)+tomcat会话共享(github插件 tomcat-cluster-redis-session-manager)

2024年3月4日 ob7-网站WEB集群 (35小时)
学习内容:
http协议,介绍nginx,目录详解,配置文件conf,基于域名的多虚拟主机,基于端口与ip的虚拟主机,故障排查
nginx日志格式,切割,下载站,状态模块,location配置

LNMP架构,部署电商网站PHPSHE
正向代理,反向代理,负载均衡,XFF真实IP,

博客接入负载均衡,轮询算法,动静分离
Cookie-Session区别,会话保持配置。搭建phpmyadmin,根据用户请求的客户端进行转发(手机端,PC端),负载均衡状态检查模块

L4与L7负载,多级负载记录用户真实ip(ngx_realip模块),
return模块,rewrite模块,if-set模块设置网站维护状态,http跳转https

高可用keepalived配置,keepalive监控nginx配置。
阿里云生成https证书及配置,集群配置https(在LB/elb处配置https)

#2024-04-02
###
《容器化-docker  - ob9》 (20小时)
学习内容:
docker镜像搜索/拉取/上传/导入导出/查看/删除/打标签
docker启动镜像/查看ps/创建/重启/过滤inspect/删除/连接管理exec/attach/ 
docker容器与宿主机传输数据/创建镜像
docker容器状态/基本信息/端口映射/数据卷挂载/
自定义镜像(创建tengine镜像)
创建restart项目镜像 (nginx代码镜像) 、理解CMD与ENTRYPOINT
docker容器部署代码,分离式架构,docker容器间互联
docker-compose ,dockerfile 多合一的镜像制作。 多阶段提交镜像FROM XXX AS temp  (为了精简镜像容量)。
Docker私有仓库 registry ,harbor 安装,镜像上传/拉取/tag
ansible批量管理容器集群

###
《shell编程 - ob12》  (18小时)
学习内容: 
脚本执行方式 bash xx.sh |   source xx.sh |  ./xx.sh  
环境变量文件加载顺序。 普通变量、全局变量、环境变量、位置变量、状态变量$?
read应用 、 shell expansion 、变量子串,字符串统计
运算符 bcawkexprlet 
对比数字、字符串。判断文件、权限与大小。
正则判断、if语句、case语句、函数-传参、for /while / until循环
shell编程 数组的循环、赋值、debug
awk数组、判断、循环、统计、去重、求和
系统巡检脚本(cpu、内存,磁盘,用户,其他,网站状态等信息)
#k8s部分  #20240415
#day00 集群极速搭建内容回顾
#0.1
k8s搭建过程(具体略)
harbor的https仓库构建
CNI:container network interface
CRI:container runtime interface
CSI: container storage interface

kubeadm init: 初始化control plane
kubeadm join:将worker节点加入一个已经存在的k8s集群。

#0.2
(1) K8S的架构
master, control plane
	api-server : 集群的统一-访问入口。
	etcd: 数据库。
	cm: 负贵管理控制器。
	schedule: 调度器,负责pod的调度。

slave, worker node (工作节点)
	kubelet : 负责pod的声明周期管理,并上报pod的状态给api-server.
	kube-proxy: 负责K8s集群外部的访问路由。



#day01 内容回顾:
#1.1
- Pod:
是K8s集群 部署的最小单元。
一个Pod内可以有多个容器,Pod的网络基础镜像是: "registry. aliyuncs . com/google_ _containers/pause:3.1"

常用的命令
kubectl create /  apply / delete /get /describe/logs/cp/exec/explain / api-resources


#1.2 资源清单文件的编写(yaml)
apiVersion:
kind:
metadata:
  name:
  lables:
spec:
  nodeName:
  hostNetwork:
  containers:
  - name:
    image:
	stdin:
	args:
	command:
等等字段
#day02 内容回顾
pod资源清单(kubectl describe po.xx)
docker推送镜像到harbor(docker login 、 docker tag 、 docker push)
pod运行一个容器/两个容器案例

pod连接到指定容器
(kubectl exec -it linux-ngx-tomcat -c nginx --sh #连接nginx容器
或 kubectl exec -it linux-ngx-tomcat -c tomcat --sh #连接tomcat容器)


查看pod的20分钟内日志( kubectl logs -c nginx -f --since=20m linux-ngx-tomcat )
查看pod上个挂掉的日志(kubectl logs -c tomcat -f -p linux-ngx-tomcat )


pod拷贝(宿主机和容器之间数据拷贝)(kubectl cp)

镜像下载策略(always 、 never、ifNotPresent)


使用logs查看自定义日志输出(使用kubectl logs 无法查看日志是什年原因,如何让其能够查看呢)
答:使用“kubectl logs”查看的是容器的标准输出或错误输出日志,如果想要使用该方式查看,需要将日志重定向到/dev/stdout 或者 /dev/stderr
ln -svf /dev/stdout /var/log/nginx/access.log
ln -svf /dev/stderr /var/log/nginx/error.log

在这里插入图片描述




#day03 内容回顾:  2024年4月26日
Pod环境变量: env的 name、value、valueFrom

存储卷volumes的name 、emptyDir、hostPath、nfs、configMap、secret
      valueMounts的name、mountPath、subPath

容器重启策略restartPolicy (always、onFailure、never)

资源限制resources的 request(memory、cpu) , limits(memory、cpu)

configMap 应用场景:存储配置文件 。 其引用方式(po.spec.containers.env 和 po.spec.volumes)
secret    应用场景:存储敏感数据

编写资源清单拉取harbor私有项目镜像(imagePullSecrets)(配置harbor用户名密码认证信息、https证书等案例)
#day04内容回顾  2024年4月30日
额外扩展:kind部署k8s集群,青云kubeSphere部署集群。

基于资源清单创建harbor的认证信息案例
管理资源的两种方式及Pod的标签管理(label)
标签管理cm资源和nodes资源案例(label)
探针livenessProbe(exec探测、httpGet探测、tcpSocket探测)
命名空间的增删改查(用途:隔离k8s集群资源 (测试环境,生产环境))
rc控制器(replicationControllers)用于管理pod的副本数量。
(理解selector 、label、template之间的逻辑关联)
(rc有自身的label,在metadata下
 spec下的selector下的标签是匹配下面template的labels的。 只要匹配到能创建副本。
)

svc的类型(clusterIP、externalName、NodePort、LoadBalancer)(初学阶段)

在这里插入图片描述

#day05 内容回顾  2024年5月6日
部署k8s集群之(minikube、rancher、kuboard、kubeasz)
探针readinessProbe(exec、httpGet、tcpSocket案例)
探针readinessProbe和liveness搭配使用。
探针startupProbe和其他探针的执行优先案例(startupProbe探针优先启动)
livenessProbe:  检查失败时重启容器。
readinessProbe: 检查失败时标记为 未就绪状态
startupProbe  : 检查失败将会杀死容器,在此期间不会进行livenessProbe和readinessProbe的检查

初始化容器initContainer
静态Pod
(cat /var/lib/kubelet/config.yaml
staticPodPath: /etc/kubernetes/manifests
(1)静态Pod是由kubelet启动时通过"staticPodPath"配置参数指定路径
(2)静态Pod创建的Pod名称会自动加上kubelet节点的主机名,比如"-k8s151.ob.com",会忽略"nodeName "字段;
(3)静态P od的创建并不依赖API-Server,而是直接基于kubelet所在节点来启动Pod;
(4)静态Pod的删除只需要将其从staticPodPath指定的路径移除即可;
(5)静态Pod路径仅对Pod资源类型有效,其他类型资源将不被创建
(6)kubeadm部署方式就是基于静态Pod部署的;

)

pod安全上下文securityContext (特权模式,授权能否需改内核,权限等操作)

pod的生命周期优雅终止(terminationGracePeriodSeconds)
	lifecycle:
		postStart:
		preStop

pod创建流程图解

rc升级和回滚
rs控制器(replicasets 副本控制器,相比与rc资源功能更加强大)

在这里插入图片描述

在这里插入图片描述

#day06内容回顾   2024年5月11日
使用rs资源进行升级和回滚
deploy资源升级和回滚案例
deploy的升級策略实战(strategy)
	(type: RollingUpdate、Recreate)
	(rollingUpdate: maxSurge、maxUnavailable)

响应式方式升级deployment资源
	(kubectl set image , kubectl edit)
deployment资源部署redis
deployment资源部署wordpress
WordPress架构演变(mysql数据持久化,图片持久化(使用nfs),svc nodePort做负载)

coreDNS组件(将svc的名称解析为ClusterIP地址)(fqnd、dig、ping)
deployment实现蓝绿发布(不停止老版本代码(不影响上一版本访问),而是在另外一套环境部署新版本然后进行测试。)
deployment实现灰度发布(金丝雀发布)
	(
	实现机制:	
		- 1.部署当前版本,使用多副本; (最开始是3个副本)
		- 2.部署service, 匹配一个label标签;
		- 3.部署新版本(使用deployment名称,但是label标签和之前保持一致), 新版本runing之 后service会自动匹配label并将pod添加
			service的endpoints接收客户端请求; (最开始)
		- 4.灰度版本测试没有问题,将灰度版本的pod副本数逐渐增加为生产数量;
		- 5.将旧版本pod逐渐调低至为0,此时数流量将全部转发至新版本;

	)
K8S运行一次性任务(jobs 一次性的任务调度)
K8S运行周期性任务(cronjobs 底层基于jobs控制器实现周期性任务调度)

Logo

开源、云原生的融合云平台

更多推荐