51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

通过service 控制器实现负载均衡案例

service 控制器案例(demo)

	- 服务发现:
		基于标签管理器关联后端的Pod列表。
	- 负载均衡:
		将用户请求转发给不同的Pod以均衡流量。

使用rc控制器部署3个副本,并使用svc的10.200.100.100:99端口进行服务的访问;

(1)不允许制作一个镜像,要求访问首页文件时出现以下信息;
		<所在节点 ---> Pod名称 ---> Pod的IP地址>
		举个例子:
	解题思路:
		- 向容器传递环境变量:
	- 将这个写过写入到网站根目录即可:
	
	
	echo &amp;quot;&amp;lt;${baimei_POD_NAMENAME} ---&amp;gt; ${baimei_POD_NAME} ---&amp;gt; ${baimei_POD_IP}&amp;gt;&amp;quot; &amp;gt; /usr/share/nginx/html/index.html

(2)使用rc控制器部署3个副本,并使用svc的10.200.100.100:99端口进行服务的访问;

参考案例:

(1)编写资源清单

cat 01-rc-svc-initContainers.yaml

apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  # 指定service的IP地址
  clusterIP: 10.200.100.100
  # 基于标签选择器关联Pod
  selector:
    school: baimei
  # 配置端口映射
  ports:
    # 指定Service服务本身的端口号
  - port: 99
    # 后端Pod提供服务的端口号
    targetPort: 80

apiVersion: v1 kind: ReplicationController metadata: name: baimei-rc-web spec: replicas: 3 template: metadata: labels: school: baimei class: dashu spec: volumes: - name: data emptyDir: {} initContainers: - name: init image: harbor.baimei.com/baimei-web/nginx:1.25.1-alpine command: - "/bin/sh" - "-c" - "echo &quot;<h1>${baimei_POD_NAMENAME} ---> ${baimei_POD_NAME} ---> ${baimei_POD_IP}</h1>&quot; > /data/index.html" env: - name: baimei_POD_NAMENAME valueFrom: fieldRef: fieldPath: "spec.nodeName" - name: baimei_POD_NAME valueFrom: fieldRef: fieldPath: "metadata.name" - name: baimei_POD_IP valueFrom: fieldRef: fieldPath: "status.podIP" volumeMounts: - name: data mountPath: /data containers: - name: web image: harbor.baimei.com/baimei-web/nginx:1.25.1-alpine volumeMounts: - name: data mountPath: /usr/share/nginx/html

(2)创建资源

kubectl apply -f 01-rc-svc-initContainers.yaml

kubectl get svc,pods

(3)查看资源

for i in `seq 30`;do curl -s 10.200.100.100:99;done | sort | uniq -c

赞(4)
未经允许不得转载:工具盒子 » 通过service 控制器实现负载均衡案例