Kubernetes五探(B站视频学习)

5 篇文章 0 订阅

最近公司比较闲,在B站看了k8s的视频,来完整了解一下k8s。这篇文章作为笔记,还有总结。
小小感触:
原来我学习什么东西总是喜欢自己翻博客,翻官网。找各种文章看,我觉得这样很快,我可以快速找到想学的东西,通过目录掌握基本的图谱,视频总是磨磨唧唧的。但其实我明白,看视频可以学到意外的东西,比如学机器学习,意外掌握了matlab····。
但是最近可能不再年轻,心里事多,没有那么纯粹的专注力去看文章了,这几天突然想到看视频。哇!!!打开了新世界。看视频是慢了点,但胜在不用动什么脑子,就光看就行··很轻松。就是原来是主动的,很累,其实每次开始学习内心都很抗拒,特别是那种官方文档屎一样,没什么结构,关键词不好找,访问还慢的。但是现在,我想学什么,直接搜视频,人家整理的清清楚楚,主动投喂,我只需张嘴即可。真的不要太轻松。缺点可能就是记得不劳,看过就忘。适合那种了解一下,放松学习。总之,也很不错。

视频链接:https://www.bilibili.com/video/BV1MT411x7GH
讲的很不错,最起码把k8s的资源讲的很清楚,让我有了整体的感觉。
plus:课件这里有
https://znunwm.top/archives/k8s-xiang-xi-jiao-cheng#4.5-service
下面是做的简单笔记,超级简单那种,仅做自己看的

iptables
firewall 学习

k8s学习
https://www.bilibili.com/video/BV1MT411x7GH 
核心概念
1、集群架构与组件
	控制面板组件etcd、api-service等
	节点组件kubelet、proxy等
	附加组件dns、ingress等
	分层架构
2、专业术语
	服务的分类-无状态、有状态
	资源的分类
		元数据型 Horizontal Pod Autoscaler (HPA)、PodTemplate、LimitRange等
		集群型 Namespace、Node、ClusterRole、ClusterRoleBinding等
		命名空间级
			工作负载型 Pod
				副本 replicas
				控制器 Deployment、statefulSet、DaemonSet等
			服务发现与负载均衡 service/ingress 
			特殊类型存储 ConfigMap、Secret
			配置与存储 volume、CSI
			其他 Role
	对象的规约和状态 spec、status

深入实战
1、深入pod-探针、生命周期、prestop
2、资源调度-label selector、Deployment、statefulSet、DaemonSet、HPA自动扩/缩容
3、服务发布-service、ingress
4、配置与存储
5、高级调度-cronjob计划任务、污点和容忍、亲和力affinity、初始化容器initContainer
6、身份与权限认证


1、Helm包管理器
2、集群监控
3、elk日志管理
4、k8s可视化界面


F5/LVS/SLB 负载均衡

service  横向 东西流量  四层负载
ingress 纵向 南北流量 七层负载


yum clean all

systemctl status kubelet

journalctl -xefu kubelet

kubeadm reset

kubeadm token list


pod --> replicaSet --> deployment


template 对应的pod

kubectl get deploy nginx-deploy -o yaml

kubectl edit deploy nginx-deploy 
kubectl edit sts web 

kubectl replace -f nginx-deploy.yml

kubctl get po,rs,deploy --show-labels

kubectl set image deployment/nginx-deploy nginx=nginx:1.91

kubectl rollout status deployments nginx-deploy

kubectl rollout history deployments nginx-deploy

kubectl rollout history deployments nginx-deploy --revision=2

kubectl rollout undo deployments nginx-deploy --to-revision=2
kubectl rollout pause deployments nginx-deploy 
kubectl rollout resume deployments nginx-deploy 


默认是级联删除(pod 和 sts 都删除了)
kubectl delete statefulset web

kubectl delete statefulset web --cascade=false


kubectl autoscale nginx-deploy --cpu-percent=20 --min =2 --max=5

kubectl get hpa

kubectl top -h
kubectl top pods

sh -c "sleep 5;echo 'hello' > /data/aa.txt"

while true; do wget -q -O- http://localhost:80 > /dev/null ;done



-------service-------------------------
endpoints
kubectl get endpoints

ClusterIP 集群内部访问,只有东西流量,如微服务
ExternalName 配置访问域名
NodePort 生产环境不推荐,效率低,四层负载。仅测试使用。南北流量应该用ingress,暴露接口一般不使用service,service只做东西流量
LoadBalancer 


kubectl exec -it busybox -- sh  #进入容器,测试是否联调

可以通过服务名访问,
默认是在当前namespace中访问,命名空间级别,如:http://nginx-svc.default

基于service访问外部服务:
1、service不指定selector
2、自己创建endpoints

内网 --> service --> endpoints --> 外网

访问外部域名用service用ExternalName即可

-------ingress-------------------------

nginx是ingress的实现,ingress是抽象,是协议,ingress还有很多实现
就是相当于在node上装了nginx

-------配置与存储-------------------------
configMap
kubectl get cm

secret
kubectl create secret -h
kubectl create secret docker-registry -h

subPath的使用
volume会覆盖目录所有的文件,会直接覆盖目录

1.定义 volumes 时需要增加 items 属性,配置 key和 path,且 path 的值不能从/开始
2.在容器内的 volumeMounts 中增加 subPath 属性,该值与volumes 中items.path 的值相同

configMap热更新
1、直接edit修改configMap
2、replace替换
kubectl create cm test-dir-config --from-file=./test/ --dry-run -o yaml | kubectl replace -f-
默认更新,但是subPath不会更新,变量形式也不会更新

不可变的secret和configMap
immutable: true


-------持久化存储-------------------------
volumes
	HostPath:把节点的目录挂载到Pod上
	EmptyDir:用于一个Pod中不同容器共享数据,pod被删除,它也会被删除

NFS挂载
yum install nfs-utils -y

PV与PVC
CSI规范
	生命周期-静态构建-动态构建-绑定-使用-回收策略
	Pod --> pvc -->pv -->nfs、磁盘等
	StorageClass 动态制备PV  provisioner
	

-------高级调度-------------------------
cronjob计划任务
初始化容器initContainer
污点和容忍

-------身份认证与权限-------------------------
认证
	user accounts
	service accounts

授权(RBAC)
	role
	clusterRole
	roleBinding
	clusterRoleBinding
	
-------运维管理-------------------------
helm
	chart
	config
	release
	
helm search repo redis
helm show readme bitnami/redis
helm pull bitnami/redis // 下载的是chart压缩包
kubectl create namespace redis
helm install redis ./redis/ -n redis
kubectl get all -n redis
kubectl exec -it redis-master-0 -n redis -- bash

升级 回滚

helm upgrade redis ./redis -n redis
helm history redis
helm rollback redis
helm rollback redis 3

helm list -n redis
helm delete redis -n redis

-------k8s集群监控-------------------------

1、自定义配置
	创建 ConfigMap 配置   --prometheus的配置
	部署 Prometheus  --Deployment
	配置访问权限  -- clusterRole、serviceAccount、clusterRoleBinding
	服务发现配置 -- DaemonSet、nodeExporter、blackbox exporter(常见的黑盒监控包括HTTP探针、TCP探针等用于检测站点或者服务的可访问性,以及访问效率等)
	系统时间同步
	监控k8s集群 
		从 kubelet 获取节点容器资源使用情况
		Exporter 监控资源使用情况
		对Ingress 和 Service 进行网络探测
	Grafana 可视化
		部署 Grafana
		服务发现
		配置 Grafana 面板

2、kube-prometheus
	替换国内镜像 -- 从github上下载,manifests setup
	修改访问入口
	安装
	配置Ingress  必须配置host,用域名吗
	卸载
	

-------k8s集群监控-------------------------
prometheus
-------集群日志管理 elk-------------------------
-------k8s可视化界面-------------------------
kubernetes Dashboard
Kubesphere
-------微服务DevOps实战-------------------------

本来想写很多看视频的感触,学到的东西等等的。
今天看完视频,得知公司没钱了,欠了四个月。领导说大家各做打算,一下子没有心情了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值