本文共 2444 字,大约阅读时间需要 8 分钟。
Kubernetes(简称K8s)是一款开源的容器编排引擎,基于容器化技术(例如Docker)构建高效的云原生应用部署环境。其核心架构由控制平面(Master节点)和执行节点(Node节点)组成。
Pod是K8s中最小的、可调度的部署单元。一个Pod可以包含一个或多个紧密相关的容器。Pod的结构包括:
Pod的设计原因:
Service是K8s中核心资源之一,其作用是为一组Pod提供唯一的访问地址。Service定义了一个ClusterIP,仅集群内的容器才能通过此IP访问到Service。通过Label Selector,Service可以动态绑定相关Pod,实现负载均衡和服务发现。
Label是K8s中用来标记资源的关键技术。每个资源对象可以定义多个Label,Label可以作为键值对或集合使用。Service通过Label Selector动态选择目标Pod,实现服务路由和负载均衡。
Service动态绑定Pod的实现依赖于Label和kube-proxy。定义Pod的Label标签,Service在创建时定义Label Selector(类似于SQL查询规则),kube-proxy通过这些规则选择目标Pod并建立路由表。
sudo su -apt-get update && apt-get install -y apt-transport-httpscurl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -cat /etc/apt/sources.list.d/kubernetes.listdeb > /dev/nullapt-get update && apt-get install -y kubelet kubectl
curl -Lo minikube-linux-amd64-1.11.0-aliyuncs http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.11.0/minikube-linux-amd64sudo install minikube-linux-amd64-1.11.0-aliyuncs /usr/local/bin/minikube
minikube start --driver docker --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version v1.18.3
kubectl create deployment hello-minikube --image=registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.4kubectl expose deployment hello-minikube --type=NodePort --port=8080minikube service hello-minikube --url
minikube service hello-minikube
kubectl describe pod hello-minikube
通过以上步骤,可以在Minikube环境中部署和测试K8s应用,了解其工作原理和实践操作方法。
转载地址:http://cqauz.baihongyu.com/