docker的Kubernetes学习笔记


kubernetes(简称:k8s)

k8s是一个集群编排工具(集群调度程序)

使用所需要注意的地方

  1. 使用k8s需要连接外网,所以可以使用vpn或者使用大厂的解决工具k8s-for-docker-desktop(github仓库里搜索)
  2. 验证k8s成功则使用kubectl version来查看信息
  3. 目前docker只有windows以及mac版,所以ubuntu这样的环境最好使用minikube(单服务器集群)
  4. docker的容器是必须以前台形式存活的,一个容器里最好只有一个进程,这样当进程被终止掉后,容器也会被关闭,这样k8s工具可以监听到容器的关闭然后重启他

k8s的使用

  1. k8s的使用方式分为两种,命令式以及声明式
    • 命令式,顾名思义就是在终端里敲对应的命令,例如kubectl run这样的,但是这样是只适合在本地开发测试使用,在生产环境中最好不要这样使用
    • 声明式,即使用服务编排文件,文件后缀为.yml,这样利于在不同节点之间服务的统一性,因此在生产环境中最好使用这种方式
  2. k8s的命名规则是不适用驼峰法,单词与单词之间用.或者-连接.

k8s概念

pod

k8s是以pod为最小单位来调度并管理docker容器,其中一个pod可含多个容器,且相同pod里的容器共享本地网络,容器间可通过localhost地址互访,即容器如同部署在相同的主机上,而以pod为最小单元来调度则表明:pod内的容器被调度到相同的docker节点上

Deployment

将应用直接以pod形式部署很少见,主因是:pod无法提供弹性伸缩,且节点故障时k8s无法将其调度到幸存节点上,缺少自愈能力。鉴于此,应用常使用“镜像Rc部署Delopyment”部署,且在k8s新版本中,官方推荐用Deployment替代rc部署无状态应用

执行kubectl delete pod 删除Pod后,可发现deployment将自动重建pod,其将确保拥有.spec.replicas个pod数量,即意味着,当pod异常时,deployment具备自愈特性。

当需伸缩或扩展应用时,若以Pod形式部署,则需删除或创建Pod,而若使用Deployment部署,则我们仅需调整.spec.replicas,而后K8S镜像控制器将自动调整Pod数量

k8s常用命令

k8s的命令行工具是kubectl

kubectl get pods -o wide|json|yaml      不同格式输出pods信息

kubectl get all --all-namespaces        查看所有服务

kubectl run db --image redis            创建一个名为db的服务,镜像为redis

kubectl delete deployment db            删除db

kubectl exec db [命令,例如ls /etc]       在容器中运行命令

kubectl exec -it db sh                  以终端打开容器

kubectl create -f pod/a.yml             以pod/a.yml的编排文件创建

kubectl describe pod db                 查看服务的详细信息

kubectl describe -f pod/a.yml           查看某个服务编排文件的详细信息

文章作者: 我若为侠
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 我若为侠 !
 上一篇
ORM模型里的渴求式加载与懒惰式加载 ORM模型里的渴求式加载与懒惰式加载
懒惰式加载 // 获取 ID 为 10 的帖子 $post=Post::model()->findByPk(10); // 获取帖子的作者(author): 此处将执行一个关联查询。 $author=$pos
2019-11-01
本篇 
docker的Kubernetes学习笔记 docker的Kubernetes学习笔记
kubernetes(简称:k8s)k8s是一个集群编排工具(集群调度程序) 使用所需要注意的地方 使用k8s需要连接外网,所以可以使用vpn或者使用大厂的解决工具k8s-for-docker-desktop(github仓库里搜索) 验证
2019-11-01
  目录