0
点赞
收藏
分享

微信扫一扫

Kubernetes(九)——NodePort类型Service暴露应用

alanwhy 2022-05-01 阅读 40

Service资源

尽管每个 Pod 都有一个唯一的 IP 地址,但是如果没有 Service ,这些 IP 不会暴露在集群外部。

  • ClusterIP:在集群的内部 IP 上公开 Service 。这种类型使得 Service 只能从集群内访问。
  • NodePort:使用 NAT 在集群中每个选定 Node 的相同端口上公开 Service
  • LoadBalancer: 在当前云中创建一个外部负载均衡器(如果支持的话),并为 Service 分配一个固定的外部IP
  • ExternalName: 通过返回带有该名称的 CNAME 记录,使用任意名称公开 Service。

参考文档

在集群中暴露 Pod

创建pod

vim my-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      run: my-nginx
  replicas: 6
  template:
    metadata:
      labels:
        run: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
kubectl apply -f my-nginx.yaml
kubectl get pods -o wide

在这里插入图片描述

NodePort类型暴露Service

vim service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-nginx
  labels:
    run: my-nginx
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    run: my-nginx
kubectl apply -f servcie.yaml
kubectl get service my-nginx

在这里插入图片描述

我们查看一下服务的详细信息

 kubectl describe service my-nginx

在这里插入图片描述
所以说8080端口是VIP10.1.132.180的端口

我们进入容器内部把显示的页面更改,查看负载均衡的效果。

在这里插入图片描述
我们多次访问VIP的8080端口可以看到负载均衡效果
在这里插入图片描述
使用集群外的同网段机器访问宿主机的31944端口,可以看到负载均衡效果。
在这里插入图片描述

举报

相关推荐

0 条评论