如果有路由到一个或多个集群节点的外部 IP,则可以在这些 IP 上公开 Kubernetes 服务。在服务端口上使用外部 IP(作为目标 IP)进入集群的流量将被路由到其中一个服务端点。 不受 Kubernetes 管理,由集群管理员负责
在Kubernetes中用到的比较到多的是ClusterIP和NodePort类型的service,externalIPs则很少使用。我们现在了解一下其用法和它的一些优缺点
第一章:创建一个基于nginx镜像的deployment的服务
[root@k8s-master1-60 ruoyi-gen]# kubectl create deployment -n default nginx --image=nginx:1.21.0 --port=80 --dry-run=client -oyaml > nginx.yaml
[root@k8s-master1-60 deployment]# cat nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: nginx
name: nginx
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: nginx
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx
spec:
containers:
- image: nginx:1.21.0
name: nginx
ports:
- containerPort: 80
resources: {}
status: {}
[root@k8s-master1-60 deployment]# kubectl apply -f nginx.yaml
deployment.apps/nginx created
[root@k8s-master1-60 deployment]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-85b96f4859-7qx5r 1/1 Running 0 84s第二章:创建service服务(externalIPs模式)
[root@k8s-master1-60 deployment]# cat << EOF > nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
externalIPs:
- 172.30.42.72
type: ClusterIP
EOF
[root@k8s-master1-60 deployment]# kubectl apply -f nginx-service.yaml
service/nginx created
[root@k8s-master1-60 deployment]# kubectl get svc nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx ClusterIP 10.111.191.16 172.30.42.72 80/TCP 27s
#使用CMD控制台或者浏览器调用查看nginx服务

