3. 服务和网络 20%¶
1. 了解集群节点上的主机网络配置¶
Understand host networking configuration on the cluster nodes
flannel
2. 理解 Pods 之间的连通性¶
Understand connectivity between Pods
Pod¶
最小的部署单位,集群中的进程,理解为 linux ,独立网络 IP、容器管理策略 pod 中容器共享 ip 和端口
- init 容器
- infra(pause) 容器
容器是通过 namespace 和 cgroups 隔离开的,通过 Join Namespace 来实现共享和隔离,主要提供两个功能:
- 在 pod 中担任 Linux 命名空间共享的基础;
- 启用 pid 命名空间,开启 init 进程。
k8s pod container linux process micro_process
container 通讯
- node 内 pod 内:
- node 内 pod 间:
- node 外 pod 间
声明周期:kubectl -> api server -> etcd -> schedler -> contral manager -> kubelet -> infra 容器、init 容器、biz 容器
3. 了解 ClusterIP、NodePort、LoadBalancer 服务类型和端点¶
Understand ClusterIP, NodePort, LoadBalancer service types and endpoints
-
Service 服务,网络方式有以下三种:
- ClusterIP:默认类型,自动分配一个仅 Cluster 内部可以访问的虚拟 IP
- NodePort:在 ClusterIP 基础上为 Service 在每台机器上绑定一个端口,这样就可以通过
<NodeIP>:NodePort
来访问该服务。 - LoadBalancer:在 NodePort 的基础上,借助 Cloud Provider 创建一个外部的负载均衡器,并将请求转发到
<NodeIP>:NodePort
-
EndPoint 端点
4. 了解如何使用入口控制器和入口资源¶
Know how to use Ingress controllers and Ingress resources
-
Ingress 入口 集群外部访问集群内部服务的入口
-
Ingress Controller 入口控制器 Ingress Controller 和之前所讲的DaemonSet 、Deployment等不同,Ingress Controller不是Controller Manager中的一部分,他只是一个或一组独立的Pod资源,他通常就是一个运行着有七层代理能力或调度能力的应用,比如:NGINX、HAproxy、Traefik、Envoy
-
Ingress Resource
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: minimal-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - http: paths: - path: /testpath pathType: Prefix backend: service: name: test port: number: 80
参考
5. 了解如何配置和使用 CoreDNS¶
Know how to configure and use CoreDNS
kubectl apply -f https://k8s.io/examples/admin/dns/dnsutils.yaml
kubectl get pods dnsutils
kubectl exec -i -t dnsutils -- nslookup kubernetes.default
6. 选择适当的容器网络接口插件¶
Choose an appropriate container network interface plugin
flannel
参考¶
题目¶
- 创建一个Pod名称为nginx-app,镜像为nginx,并根据pod创建名为nginx-app的Service,type为NodePort
- 根据已有的一个nginx的pod、创建名为nginx的svc、并使用nslookup查找出service dns记录,pod的dns记录并分别写入到指定的文件中
- 创建pod,再创建一个service
- 使用ns lookup 查看service 和pod的dns
- 给pod创建service