快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

kubernetes的原理和用法

今天小编就为大家带来一篇有关kubernetes的原理和用法的文章。小编觉得挺实用的,为此分享给大家做个参考。一起跟随小编过来看看吧。

公司主营业务:做网站、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出江源免费做网站回馈大家。

基本原理

kubernetes通过watch的机制进行每个组件的协作,每个组件之间的设计实现了解耦.

调度方式

nodeName用于将Pod调度到指定的Node名称上,跳过调度器直接分配.

nodeSelector用于将Pod调度到匹配Label的Node上,前提是node要有标签.

kubernetes的原理和用法

原理详解

图中左上角的运维人员往节点中创建一个nginx资源.

API Server和etcd和Scheduler是master.

Kubelet和Docker是node节点.

API Server做为唯一入口,接受create创建资源的属性信息写入到etcd中(属性信息:名称,镜像名称,限制条件),
etcd完善发现机制(watch)给Scheduler调度器(查看那个节点适合),然后绑定相关pod的网络信息,
反馈给API Server,收到信息后api写入etcd中,此时etcd存储了pod的网络信息(IP),node1、中的kubelet会管理pod资源,
会触发容器的创建命令,安装完成后docker就会反馈状态信息给API Server,当API Server收到状态信息写入到etcd中.

API Server相当于是平台中的管理员,负责记录相关信息,

etcd相当于管理员的记事本,相关信息内容写在其中,

如果API Server挂了,那么k8s基本上就瘫痪了.

范例演示-nodeName

  • 编辑yaml文件
vim pod5.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: nginx
spec:
  nodeName: 192.168.142.131
  #指定给node1节点
  containers:
  - name: nginx
    image: nginx:1.15
    #验证是否创建了nginx
  • 创建yaml文件
kubectl create -f pod5.yaml

kubectl get pods
  • 查看详细事件,发现未经过调度器
kubectl describe pod pod-example
  • 清空pod资源
kubectl delete -f .

kubectl get pods

范例演示-nodeSelector

  • 获取标签帮助
kubectl label --help
  • 需要获取node上的NAME名称
kubectl get node
  • 给对应的node设置标签分别为kgc=a和kgc=b
kubectl label nodes 192.168.142.130 kgc=a

kubectl label nodes 192.168.142.131 kgc=b
  • 查看标签
kubectl get nodes --show-labels

vim pod5.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: nginx
spec:
  nodeSelector: 
    kgc: b
  containers:
  - name: nginx
    image: nginx:1.15

kubectl apply -f pod5.yaml
  • 查看详细事件,通过事件可以观察经过调度器分配
kubectl describe pod pod-example

故障排除

  • 查看pod事件
kubectl describe TYPE NAME_PREFIX
  • 查看pod日志(Failed状态下)
kubectl logs POD_NAME
  • 进入pod(状态为running,但是服务没有提供)
kubectl exec –it POD_NAME bash

kubernetes的原理和用法

以上就是kubernetes的原理和用法的汇总,内容较为全面,小编相信有部分使用方法可能是我们日常工作可能会见到或用到的。希望你能通过这篇文章学到更多知识。


标题名称:kubernetes的原理和用法
标题链接:http://6mz.cn/article/geopjj.html

其他资讯