k8s的主要功能

更新时间:2023-07-13 22:40:14 阅读: 评论:0

k8s的主要功能
⼀、什么是k8s,k8s都有什么功能?
k8s是⼀个docker容器管理⼯具
⼆、k8s的核⼼功能
⾃愈: 重新启动失败的容器,在节点不可⽤时,替换和重新调度节点上的容器,对⽤户定义的健康检查不响应的容器会被中⽌,并且在容器准备好服务之前不会把其向客户端⼴播。
弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均⾼于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量
服务的⾃动发现和负载均衡: 不需要修改您的应⽤程序来使⽤不熟悉的服务发现机制,Kubernetes 为容器提供了⾃⼰的IP 地址和⼀组容器的单个 DNS 名称,并可以在它们之间进⾏负载均衡。
滚动升级和⼀键回滚: Kubernetes 逐渐部署对应⽤程序或其配置的更改,同时监视应⽤程序运⾏状况,以确保它不会同时终⽌所有实例。 如果出现问题,Kubernetes会为您恢复更改,利⽤⽇益增长的部署解决⽅案的⽣态系统。
三、k8s的应⽤场景
k8s最适合跑微服务架构
3.1 k8s常⽤的资源
3.1.1 创建po d资源博文约礼
k8s yaml的主要组成
apiVersion: v1 api版本                                                                                                                                                          kind: pod 资源类型                                                                                                                                                              metadata: 属性                                                                                                                                                                    spec: 详细
3.1.2 创建⼀个po d.ya ml⽂件
星星英语
pod资源是k8s⾥⾯最⼩的资源,构建pod资源的⾄少需要两个容器组成,pod基础容器和业 容器组成po d配置⽂件2:
3.2.1  R eplic a tio nCo ntro ller资源
ReplicationController资源 也叫rc资源
rc:保证指定数量的pod始终存活,rc通过标签选择器来关联pod
k8s资源的常见操作:
创建⼀个rc yaml⽂件
rc可以做资源回滚升级 我们下⾯写⼀个基于上⾯rc资源写升级nginx升级为1.15版的
备注:左图是升级前rc资源的图,右图是升级后的rc资源图
升级 kubectl rolling-update nginx -f nginx-rc1.15.yaml --update-period=10s
这个是rc的资源升级命令        --update-period=10s这个是10.秒更新⼀个pod资源
回滚 kubectl rolling-update nginx2 -f nginx-rc.yaml --update-period=1s
这个是回滚的命令,如果升级的新版本有问题就马上回滚到上个稳定的版本中
3.3.1r vic e资源
3.3.1rvic
原理:kubernetes中,在受RC调控的时候,pod副本是变化的,对于的虚拟的ip地址也是变化的,⽐如发⽣迁移或者伸缩的时候。这就是对于pod资源的访问者来说是不可接受的,kubernetes中的rvice是⼀种抽象的概念,它的定义就是⼀个pod逻辑集合以及访问的它们的策略,rvice同pod的关联同样是居于lable来完成的rvice的⽬标的提供⼀种桥梁,它会为访问者提供⼀个固定访问地址,⽤于在访问时重定向到相应的后端,这使的⾮kubernetes原⽣态应⽤程序,在⽆须kubernetes编写特定代码的前提下,轻松访问后端。
rvice同rc⼀样,都是通过label来关联的pod的,当你在rvice的yaml⽂件中定义了该rvice的lector中的label 为  app: myweb ,那么这个rvice会将pod-->metadata-->label中为app:myweb 的pod就可以作为发请求后端。
当pod发⽣变化时(增加,减少,重建等),rvice会及是更新的,这样⼀来,rvice就是可以作为pod的访问⼊⼝,起到代理的作⽤,⽽对于访问者来说,通过rvice进⾏访问⽆需告状pod资源。(需要注意的是,kubernetes是通过kube-proxy组件来实现的虚拟IP路由及转发的,所以在之前集群部署的环节上,我们在每个node上都部署了proxy这个组件,从⽽实现了kubernetes层的虚拟⽹络转发)
rvice的内部⽹络负载均衡
当rvice的endpoints包含多个ip地址时,及服务代理存在多个后端,将进⾏请求的负载均衡。默认的负载均衡策略是轮询或者随机,同时,rvice上通过设置rvice--->spec--->sionaffinity=clientip来实现基于源IP地址的会话保持
rvice⾃发机制
kubernetes中有⼀个重要的服务就是⾃发性,⼀旦⼀个rvice被创建,该rvice的rvice的ip和rviceponrt的资源等信息就会记录到pod的资源中供它们使⽤
rvice帮助pod暴露端⼝
创建⼀个rvice
红烧海参
修改nodePort范围
vim /etc/kubernetes/apirver                                                                                                                                              KUBE_API_ARGS="--rvice-node-port-range=3000-50000"
rvice默认使⽤iptables来实现负载均衡, k8s 1.8新版本中推荐使⽤lvs(四层负载均衡)
3.4 deplo ym ent资源
狮子女和天秤男
kubernetes提供的⼀种更加简单的更新rc和pod资源的机制,叫做delpoyment,通过deployment中描述所期望的集群状态,deployment 会将现在的集群状态在⼀个可控的速度下琢步更新你所期望的集群状态deployment 主要 的职责同样是为了保证pod的数量和健康90%的功能与rc资源完全⼀样,可以看到新⼀代的rc,但是,它⼜具备了rc之外的新特性:                    rc的全部功能:deploument继承了上⾯的描述的rc全部功能                                                                                                事件和状态查看:可以查看deployment的升级详情进度和状态。
回滚:当升级的pod镜像或者相关参数时候发现问题,可以使⽤回滚的操作回滚到上⼀个稳定的版本或者指定的版本                                                                                                                                                                                                  版本记录:每⼀次deployment的操作,都可以保存下来,给予后续可能回滚的使⽤                                                            暂停和启动: 对于每⼀次升级,都能够随时暂停和启动                                                                                                      多种升级⽅案:删除所有已存在的pod,重新创建新的,滚动升级,琢步替换的策略,同时滚动升级时,⽀持更多的附加参数,例如设置最⼤的不可⽤pod数量,最⼩升级间隔离时间等等。
创建deployment
联谊会开场白
deployment升级和回滚                                                                                                                                                        命令⾏创建deployment                                                                                                                                                        kubectl run nginx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record                                                                    命令⾏升级版本                                                                                                                                                                    kubectl t image deploy nginx
nginx=10.0.0.11:5000/nginx:1.15                                                                                        查看deployment 所有历史版本                                                                                                                                              kubectl rollout history deployment nginx                                                                                                                              deployment回滚到上⼀个版本                                                                                                                                              kubectl rollout undo deployment nginx                                                                                                                                deployment回滚到指定版本                                                                                                                                                kubectl rollout undo deployment nginx --to-revision=2
kubeadm安装k8s1.13 - 技术之路强硬的近义词
4:k8s的附加组件
4.1 dns服务
为爱流泪山茶花什么时候开花4:创建dns服务            ###这些yaml⽂件都是本地写好的上传上去的                                                                                    kubectl create -f skydns-rc.yaml                                                                                                                                        5:检查                                                                                                                                                                                    kubectl get all --namespace=kube-system                                                                                                                          6:修改所有node节点kubelet的配置⽂件                                                                                                                                vim /etc/kubernetes/kubelet                                                                                                                                                  KUBELET_ARGS="--
cluster_dns=10.254.230.254 --cluster_domain=cluster.local"
systemctl restart kubelet

本文发布于:2023-07-13 22:40:14,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1080411.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:升级   容器   资源   服务   访问   版本   回滚   时候
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图