1.常用命令
服务启动
[root@k8s-master ~]# systemctl start etcd
[root@k8s-master ~]# systemctl start docker
[root@k8s-master ~]# systemctl start kube-apiserver.service
[root@k8s-master ~]# systemctl start kube-apiserver.service
[root@k8s-master ~]# systemctl start kube-controller-manager.service
[root@k8s-master ~]# systemctl start kube-scheduler.service
[root@k8s-master ~]# systemctl start kubelet.service
[root@k8s-master ~]# systemctl start kube-proxy.service
[root@k8s-master ~]# kubectl expose deployment nginx-app --type=NodePort --port=80 --target-port=80
service "nginx-app" exposed
[root@k8s-master ~]# kubectl describe service nginx-app
Name: nginx-app
Namespace: default
Labels: run=nginx-app
Selector: run=nginx-app
Type: NodePort
IP: 10.254.73.139
Port: <unset> 80/TCP
NodePort: <unset> 30048/TCP
Endpoints: 172.17.0.2:80
Session Affinity: None
No events.
滚动升级
[root@k8s-master ~]# kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2
k8s概念
kubernetes集群
etcd
:分布式存储;保存了整个集群的状态;
controller
:控制节点; 控制节点负责整个集群的管理,例如:容器调度、资源状态维护、自动扩展、滚动更新等;
node
:服务节点;服务节点是真正运行容器的主机;负责管理镜像和容器以及cluster内的服务发现和负载均衡;
k8s架构原理
核心层:Kubernetes最核心的功能,对外提供API构建高层应用,对内提供插件式应用执行环境;
应用层:部署(无状态应用、有状态应用、批处理任务、集群应用)和路由(服务发现、DNS解析)
管理层:系统度量()
pod概念
K8S SLB限制
- 接入已有的负载均衡的设备;
- 多租户的网络情况下,容器网络和主机网络是隔离的,这种情况下Kube-proxy是无法工作的;
核心组件
- etcd:用于服务发现、共享配置以及一致性保障;
- API server: 核心组件,提供集群管理的REST API接口,
- Kubelet: 每个节点上运行一个Kubelet服务进程,默认监听10250端口,接收并执行master发来的指令,管理Pod及Pod中的容器;
容器健康检查
- LivenessProbe探针:判断容器是否健康,如若检查到不健康则执行删除操作;
- ReadinessProbe探针:判断容器是否启动完成且准备接受请求;如果探测失败则修改容器状态;
- LivenessProbe探针检测方式:
ExecAction#在容器内执行一个命令,如果退出状态码为0,则容器健康;
TCPSocketActioon#通过容器的IP地址和端口号执行TCP检查;
HTTPGetAction#通过HTTP GET方法检查,如果状态码大于200且小于400,则容器健康;