一、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