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

你可能感兴趣的:(k8s学习笔记(二)k8s的结构和功能)