1. 首页
  2. 技术知识

关于k8s 使用 Service 控制器对外暴露服务的问题

目录

    部署 deploy部署 service查看 service 和 pod 的关系查看 service查看端口导出 yaml筛选 service 关联 pod扩容测试Service 三种常用类型

Service 引入主要是解决 Pod 的动态变化,提供统一访问入口:

    防止 Pod 失联,准备找到提供同一个服务的 Pod (服务发现) 定义一组 Pod 的访问策略 (负载均衡)


部署 deploy

kubectl APPly -f deploy.yamlapiVersion: apps/v1

kind: Deployment

metadata:

  name: chiyi-nginx

spec:

  replicas: 3

  selector:

    matchLabels:

      app: chiyi-nginx

  template:

    metadata:

      labels:

        app: chiyi-nginx

    spec:

      containers:

      – name: nginx

        image: nginx:1.14.2

        ports:

        – containerPort: 80


部署 service

kubectl apply -f service.yamlapiVersion: v1

kind: Service

metadata:

  name: chiyi-nginx

spec:

  selector:

    app: chiyi-nginx

  ports:

    – protocol: TCP

      port: 80

      targetPort: 80

      nodePort: 30002

  type: NodePort


查看 service 和 pod 的关系

kubectl  get ep

curl 10.244.1.58:80说明:

Service 通过标签关联一组 Pod

Service 为一组 Pod 提供负载均衡能力

[root@k8s-master service]# kubectl get ep

NAME          ENDPOINTS                                      AGE

chiyi-nginx   10.244.1.58:80,10.244.1.59:80,10.244.2.46:80   5m19s

kubernetes    172.17.28.225:6443                             23h

[root@k8s-master service]# curl 10.244.1.58:80

<!DOCTYPE html>

<html>

<head>

<title>Welcome to nginx!</title>

<style>

    body {

        width: 35em;

        margin: 0 auto;

        font-family: Tahoma, Verdana, Arial, sans-serif;

    }

</style>

</head>

<body>

<h1>Welcome to nginx!</h1>

<p>If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.</p>

<p>For online documentation and support please refer to

<a href=”http://nginx.org/”>nginx.org</a>.<br/>

Commercial support is available at

<a href=”http://nginx.com/”>nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>

</body>

</html>


查看 service

kubectl  get service

curl 10.101.104.218[root@k8s-master service]# kubectl get service

NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE

chiyi-nginx   NodePort    10.101.104.218   <none>        80:30002/TCP   6m3s

kubernetes    ClusterIP   10.96.0.1        <none>        443/TCP        23h

[root@k8s-master service]# curl 10.101.104.218

<!DOCTYPE html>

<html>

<head>

<title>Welcome to nginx!</title>

<style>

    body {

        width: 35em;

        margin: 0 auto;

        font-family: Tahoma, Verdana, Arial, sans-serif;

    }

</style>

</head>

<body>

<h1>Welcome to nginx!</h1>

<p>If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.</p>

<p>For online documentation and support please refer to

<a href=”http://nginx.org/”>nginx.org</a>.<br/>

Commercial support is available at

<a href=”http://nginx.com/”>nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>

</body>

</html>


查看端口

ss -antp |grep 30002

[root@k8s-master service]# ss -antp |grep 30002

LISTEN     0      128          *:30002                    *:*                   users:((“kube-proxy”,pid=3544,fd=13))


导出 yaml

kubectl  get service chiyi-nginx -o yaml


筛选 service 关联 pod

kubectl get pods -l app=chiyi-nginx[root@k8s-master service]# kubectl get pods -l app=chiyi-nginx

NAME                           READY   STATUS    RESTARTS   AGE

chiyi-nginx-5bbf8bff4b-6bwfz   1/1     Running   0          3m58s

chiyi-nginx-5bbf8bff4b-bpvvc   1/1     Running   0          3m58s

chiyi-nginx-5bbf8bff4b-pwwt4   1/1     Running   0          3m58s


扩容测试

kubectl scale deployment chiyi-nginx –replicas=1

kubectl  get service,pods,ep


Service 三种常用类型

    ClusterIP 集群内部使用,任一节点服务器和 pod 内部都可以访问NodePort 对外暴露应用(端口默认范围:30000-32767),任一节点服务器公网IP+端口号,可在浏览器访问。LoadBalancer 对外暴露应用,适合公有云

到此这篇关于k8s 使用 Service 控制器对外暴露服务的文章就介绍到这了,更多相关k8s对外暴露服务内容请搜索共生网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持共生网络!

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/105874.html

联系我们