zl程序教程

您现在的位置是:首页 >  后端

当前栏目

K8S学习笔记

2023-09-27 14:27:54 时间
[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,则容器健康;