【Linux中高级运维:K8S】第2章:k8s的核心功能+常用的资源
2:什么是k8s,k8s有什么功能?k8s是一个docker集群的管理工具2.1k8s的核心功能自愈:重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量服务的自动发现和负载均衡:
2:什么是k8s,k8s有什么功能?
k8s是一个docker集群的管理工具
2.1k8s的核心功能
自愈: 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。
弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量.
服务的自动发现和负载均衡: 不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。
滚动升级和一键回滚: Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。
2.2k8s的历史
2014年 docker容器编排工具,立项
2015年7月 发布kubernetes 1.0, 加入cncf
2016年,kubernetes干掉两个对手,docker swarm,mesos 1.2版2017年
2018年 k8s 从cncf基金会 毕业
2019年: 1.13, 1.14 ,1.15
cncf cloud native compute foundation
kubernetes (k8s): 希腊语 舵手,领航 容器编排领域,
谷歌16年容器使用经验,borg容器管理平台,使用golang重构borg,kubernetes
2.3k8s的安装
yum安装 1.5 最容易安装成功,最适合学习的源码编译安装---难度最大 可以安装最新版
二进制安装---步骤繁琐 可以安装最新版 shell,ansible,saltstack kubeadm 安装最容易, 网络 可以安装最新版
minikube 适合开发人员体验k8s, 网络
2.4k8s的应用场景
k8s最适合跑微服务项目!
k8s常用的资源
3.1创建pod资源
k8s yaml的主要组成
k8s_pod.yaml
pod资源:至少由两个容器组成,pod基础容器和业务容器组成。1个pod可以包含多个容器。
当业务容器数量 > 2时,k8s节点上也只有一个pod基础容器用来共享给该节点上的其它容器。
其中pod容器包含IP和端口,业务容器没有IP和端口用来夯住,2个容器之间共用一个网络,采用container网络模式。
pod配置文件2:
pod是k8s最小的资源单位
3.2ReplicationController资源
rc:保证指定数量的pod始终存活,rc通过标签选择器来关联pod
k8s资源的常见操作:
kubectl create -f xxx.yaml kubectl get pod|rc kubectl describe pod nginx kubectl delete pod nginx
或者
kubectl delete -f xxx.yaml kubectl edit pod nginx
创建一个rc
rc的滚动升级
新建一个nginx-rc1.15.yaml:
升级
kubectl rolling-update nginx -f nginx-rc1.15.yaml --update-period=10s
回滚
kubectl rolling-update nginx2 -f nginx-rc.yaml --update-period=1s
3.3service资源
service帮助pod暴露端口创建一个service
修改nodePort范围:
service默认使用iptables来实现负载均衡, k8s 1.8新版本中推荐使用lvs(四层负载均衡)
3.4deployment资源
有rc在滚动升级之后,会造成服务访问中断,于是k8s引入了deployment资源
创建deployment:
deployment升级和回滚命令行创建deployment
kubectl run nginx --image=10.0.0.11:5000/nginx:1.13 --replicas=3 --record
命令行升级版本
kubectl set 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
3.5tomcat+mysql练习
在k8s中容器之间相互访问,通过VIP地址!
更多推荐
所有评论(0)