步骤概览:
| 步骤 | 操作 |
|------|-------------------------------------------------------|
| 1 | 安装和配置Calico |
| 2 | 部署一个Deployment |
| 3 | 创建Service并暴露公网IP |
| 4 | 配置Ingress以实现公网访问 |
步骤一:安装和配置Calico
1. 在集群中安装Calico网络插件,可以通过以下命令进行安装:
```bash
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
```
步骤二:部署一个Deployment
1. 创建一个Deployment,例如nginx Deployment,可以使用以下命令:
```bash
kubectl create deployment nginx --image=nginx
```
步骤三:创建Service并暴露公网IP
1. 创建一个Service来暴露Deployment中的Pod,可以使用以下命令:
```bash
kubectl expose deployment nginx --port=80 --type=LoadBalancer
```
2. 等待一段时间,直到Service中的external IP为公网IP,可以通过以下命令获得该IP:
```bash
kubectl get svc nginx
```
步骤四:配置Ingress以实现公网访问
1. 部署一个Ingress Controller,例如Nginx Ingress Controller,可以使用以下命令:
```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
```
2. 配置Ingress资源,将公网IP指向Service,创建一个`ingress.yaml`文件如下:
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules:
- host: example.com # 替换为你要使用的域名
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
```
3. 应用Ingress资源到集群中:
```bash
kubectl apply -f ingress.yaml
```
完成以上步骤后,你就成功实现了在K8S中使用Calico作为网络插件,并且通过Ingress暴露公网IP来访问集群内的Pod。通过这些步骤,你可以将应用部署到Kubernetes集群中,并实现公网访问,方便外部用户访问你的应用。
希望这篇教程对你有所帮助,祝你在学习Kubernetes的路上越走越远!
















