实践 Network Policy - 每天5分钟玩转 Docker 容器技术(172)
为了演示 Network Policy,我们先部署一个 httpd 应用,其配置文件 httpd.yaml
为:
httpd 有三个副本,通过 NodePort 类型的 Service 对外提供服务。部署应用:
当前没有定义任何 Network Policy,验证应用可以被访问:
-
启动一个 busybox Pod,可以访问 Service,也可以 Ping 到副本 Pod。
-
集群节点可以访问 Service, 也可以 Ping 到副本 Pod。
-
集群外(192.168.56.1)可以访问 Service。
现在创建如下 Network Policy:
① 定义将此 Network Policy 中的访问规则应用于 label 为 run: httpd
的 Pod,即 httpd 应用的三个副本 Pod。
② ingress
中定义只有 label 为 access: "true"
的 Pod 才能访问应用。
③ 只能访问 80
端口。
通过 kubectl apply
创建 Network Policy。
验证 Network Policy 的有效性:
-
busybox Pod 已经不能访问 Service。
如果 Pod 添加了 labelaccess: "true"
就能访问到应用,但 Ping 已经被禁止。 -
集群节点已经不能访问 Service, 也 Ping 不到副本 Pod。
-
集群外(192.168.56.1)已经不能访问 Service。
如果希望让集群节点和集群外(192.168.56.1)也能够访问到应用,可以对 Network Policy 做如下修改:
应用新的 Network Policy:
现在,集群节点和集群外(192.168.56.1)已经能够访问了:
除了通过 ingress
限制进入的流量,也可以用 egress
限制外出的流量。大家可以参考官网相关文档和示例,这里就不赘述了。
小结
Kubernetes 采用的是扁平化的网络模型,每个 Pod 都有自己的 IP,并且可以直接通信。
CNI 规范使得 Kubernetes 可以灵活选择多种 Plugin 实现集群网络。
Network Policy 则赋予了 Kubernetes 强大的网络访问控制机制。
书籍:
1.《每天5分钟玩转Kubernetes》
https://item.jd.com/26225745440.html
2.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
3.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
相关文章
- Docker面试题(史上最全 + 持续更新)
- 【简记】修改Docker数据目录位置,包含镜像位置
- 干货 | 仅需4步,即可用 Docker搭建测试用例平台 TestLink
- docker其他参考资料
- Docker最全教程——.NET5进一步拥抱容器技术
- 微服务轮子项目(13) - 统一日志中心详解(docker安装部署)
- 让我们稍微深入理解一下 docker 的技术概念
- 一文带你了解docker技术
- 技术分享 | 掌握高频 Docker 命令,夯实内功基础
- 5 分钟,教你用 Docker 部署一个 Python 应用
- Docker技术入门与实战(第2版)1.1 什么是Docker
- Docker技术入门与实战(第2版)1.4 本章小结
- Docker技术入门与实战(第2版)2.1 核心概念
- Docker技术入门与实战(第2版)3.1 获取镜像
- Docker技术入门与实战(第2版)3.4 删除镜像
- 《循序渐进学Docker》——3.3 在Ubuntu下安装Docker
- 牛批!阿里 P8 熬夜冠军手码的 Docker 容器 +k8s 技术 PDF, 你还等啥呢
- Docker - 镜像的分层 - busybox镜像制作
- Docker环境搭建与使用:docker的简介与架构以及安装docker
- 基于Docker安装 GitLab
- 搭建RabbitMQ集群(Docker)
- 《Docker技术入门与实战》——1.1 什么是Docker
- 《Docker技术入门与实战》——第2章 Docker的核心概念和安装
- 《Docker技术入门与实战》——3.2 查看镜像信息
- 《Docker技术入门与实战》——3.6 存出和载入镜像
- 《Docker技术入门与实战》——3.8 本章小结
- docker基础之镜像概念(四)
- 国内高速下载Docker 以及 docker-compose 地址
- 关于docker启动失败问题处理
- 如何基于SpringBoot+Docker构建公司级别的远程调试
- Centos6和Centos7下Docker的安装和使用(踩坑指南)
- Docker 公布日志管理的新生态系统技术合作伙伴
- 部署技术演变之虚拟机、容器、Docker、Kubernetes
- Docker与虚拟机技术
- Docker-hue 缺少 kerberos 依赖解决