k8s
【1】k8s主要提供了如下的主要功能:
自我修复:一旦某一个容器崩溃,能够在1秒钟左右迅速启动新的容器
弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整
服务发现:服务可以通过自动发现的形式找到它所依赖的服务
负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡
版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本
存储编排:可以根据容器自身的需求自动创建存储卷
【2】k8s的架构:
【3】k8s概念:
Master:集群控制节点,每个集群需要至少一个master节点负责集群的管控
Node:工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行
Pod:k8s的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器
Controller:控制器,通过它来实现对pod的管理,比如启动pod,停止pod,伸缩pod的数量等等
Service:pod对外服务的统一入口,下面可以维护着同一类的多个pod
Label:标签,用于对pod进行分类,同一类pod会拥有相同的标签
NameSpace:命名空间,用来隔离pod的运行环境
【4】
【5】namespace操作:
【6】Pod:
Pod创建不成功,定位问题可以使用kubectl describe pod pod名称 -n dev 命令查看问题所在。(spec-》描述)
【7】Label标签的操作:
配置文件中添加Label配置:
【8】Pod控制器:Deployment
删除Deployment:kubectl delete deploy nginx -n dev
配置文件配置Deployment:
【9】Service:
配置文件创建Service:
【10】查看参数都有哪些的命令:kubectl explain pod ,查看具体 kubectl explain pod.metadata
【11】Pod的基本配置:
镜像拉取策略:
启动命令:
端口设置:
资源配额:
【12】Pod的生命周期:
初始化容器最先执行
钩子函数:
容器探测:
重启策略:(Pod的配置)
【13】Pod的调度:
查看命令:kubectl get pod pod名称 -n ns名称 -o wide
node亲和性注意事项:
Pod亲和性配置:
参照Pod:
Pod反亲和性配置:
【14】Pod的控制器:
rs的扩缩容:
rs版本镜像的升降级:
扩缩容:
镜像更新:
版本回退:
金丝雀发布:(验证新的Pod是否能够正常访问)
【15】Service:
ClusterIP类型:
【16】Ingress:
访问nginx.itheima.com这个域名,映射到service的nginx-service:80端口。
【17】数据存储:
【18】k8s web端工具:DashBoard