### 整体流程
首先,让我们看一下实现K8S容器之间互访的整体流程:
| 步骤 | 描述 |
|----|----|
| 1 | 创建一个Kubernetes集群 |
| 2 | 创建两个Deployment并暴露服务 |
| 3 | 添加网络策略 |
### 具体步骤
#### 步骤一:创建一个Kubernetes集群
如果你还没有搭建Kubernetes集群,可以使用Minikube来快速搭建一个本地的集群。在命令行中执行以下命令:
```bash
minikube start
```
#### 步骤二:创建两个Deployment并暴露服务
我们需要创建两个Deployment,每个Deployment里包含一个Pod。然后分别暴露这两个Deployment创建的服务。
首先,创建一个Nginx Deployment并暴露服务:
```bash
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80
```
接着,创建一个Busybox Deployment,Busybox是一个精简的Linux发行版,用于测试网络通信:
```bash
kubectl run -i --tty busybox --image=busybox --restart=Never -- sh
```
#### 步骤三:添加网络策略
为了让两个Deployment之间可以互相访问,我们需要添加网络策略。创建一个名为allow-nginx的网络策略,允许访问Nginx服务:
创建一个名为allow-nginx的网络策略文件 `allow-nginx.yaml`,内容如下:
```yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-nginx
spec:
podSelector:
matchLabels:
app: nginx
policyTypes:
- Ingress
- Egress
ingress:
- {}
egress:
- {}
```
然后应用这个网络策略:
```bash
kubectl apply -f allow-nginx.yaml
```
### 总结
通过以上步骤,我们成功实现了K8S容器之间的互访。首先是搭建Kubernetes集群,然后创建两个Deployment并暴露服务,最后添加网络策略来允许容器之间的通信。希望这篇教程能够帮助你理解和实现K8S容器之间的互访。如果有任何问题,欢迎留言讨论。