ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

用nginx对k8s集群中的service做负载均衡

2021-12-27 13:03:24  阅读:125  来源: 互联网

标签:web 8080 service nginx html pod k8s root


用nginx对k8s集群中的service做负载均衡

[root@master test]# cat nginx.yml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx  
        image: nginx
        imagePullPolicy: IfNotPresent

---
apiVersion: v1
kind: Service
metadata:
  name: web
  namespace: default
spec:
  ports:
  - port: 8080          #service用来负载均衡的端口
    protocol: TCP
    nodePort: 30000     #nodePort的取值范围在:30000-32767
    targetPort: 80      #pod端口
  selector:
    app: nginx          #需要和上面deployment中的app: nginx一致
  type: NodePort

[root@master test]# kubectl apply -f nginx.yml 
deployment.apps/web unchanged
service/web configured

[root@master test]# kubectl describe svc web
Name:                     web
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=nginx
Type:                     NodePort
IP Families:              <none>
IP:                       10.97.194.136
IPs:                      10.97.194.136
Port:                     <unset>  8080/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30000/TCP
Endpoints:                10.244.1.250:80,10.244.1.251:80,10.244.1.252:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>


[root@master test]# kubectl get pod,svc
NAME                       READY   STATUS    RESTARTS   AGE
pod/busybox                1/1     Running   0          20m
pod/web-7cf7d6dbc8-4rmlv   1/1     Running   0          24m
pod/web-7cf7d6dbc8-fw7pn   1/1     Running   0          24m
pod/web-7cf7d6dbc8-mfxws   1/1     Running   0          24m

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP          8d
service/web          NodePort    10.97.194.136   <none>        8080:30000/TCP   24m

[root@master test]# curl 10.97.194.136:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
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>

bosybox是一个工具,非常小直接启动它来验证
[root@master test]# kubectl run busybox --rm -it --image=busybox /bin/sh
If you don't see a command prompt, try pressing enter.
/ # wget web.default.svc.cluster.local:8080         #kubectl的任何pod里面都可以通过服务名.namespace名:服务端口的方式进行访问
Connecting to web.default.svc.cluster.local:8080 (10.97.194.136:8080)
saving to 'index.html'
index.html           100% |******************************************|   615  0:00:00 ETA
'index.html' saved
/ # ls
bin         etc         index.html  root        tmp         var
dev         home        proc        sys         usr
/ # more index.html 
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
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>

 

标签:web,8080,service,nginx,html,pod,k8s,root
来源: https://www.cnblogs.com/Aimmi/p/15735837.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有