k8s学习笔记(二)k8s的结构和功能

一、k8s的功能

2014年谷歌开源的容器化集群管理系统,(1)用于容器化应用部署,(2) 利于应用扩展,(3)高效部署。

  • 自动装箱
  • 自我修复(自愈能力)
  • 水平扩展
  • 服务发现
  • 滚动更新
  • 版本回退
  • 密钥和配置管理
  • 存储编排
  • 批处理
k8s的结构图.png

二、k8s的结构图

k8s架构图.png

master node 主控节点

  • API server:集群统一入口,REST api
  • controller-manager:处理集群中常规后台任务,一个资源对应一个控制器
  • schedule:节点调度,选择node节点部署应用
  • etcd:存储系统
    master node执行kubeadm init,自动生成上述组件:
$ kubectl get pods -n kube-system
NAME                                                       READY   STATUS    RESTARTS   AGE
coredns-545d6fc579-lxzt9                                   0/1     Pending   0          2m6s
coredns-545d6fc579-tx6sj                                   0/1     Pending   0          2m6s
etcd-hyongtaonew-precision-tower-5810                      1/1     Running   0          2m21s
kube-apiserver-hyongtaonew-precision-tower-5810            1/1     Running   0          2m16s
kube-controller-manager-hyongtaonew-precision-tower-5810   1/1     Running   0          2m16s
kube-proxy-d5b69                                           1/1     Running   0          2m6s
kube-scheduler-hyongtaonew-precision-tower-5810            1/1     Running   0          2m16s

worker node 工作节点

  • kubelet master:安排到node的节点代表,管理本容器
  • kube-proxy:提供网络代理

三、k8s三大核心

  • Pod
    K8S的最小调度单元
    一个Node节点里可能有多个Pod,一个Pod里可能有多个docker。

  • Controller

  • Service

四、常用命令行和含义

$ kubectl --help
$ kubectl get --help
$ kubectl delete -f kube-flannel.yml
$ kubectl apply -f kube-flannel.yml
$ kubectl get pod -n kube-system
$ kubectl get pods
$ kubectl get pods -o wide
$ kubectl create deployment nginx --image=nginx
$ kubectl get deployments
$ kubectl get pods
$ kubectl describe deployments.apps nginx
$ kubectl describe pod nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pod,svc
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容