51工具盒子

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

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

service 控制器案例(demo)

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

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

(1)不允许制作一个镜像,要求访问首页文件时出现以下信息;
		<所在节点 ---> Pod名称 ---> Pod的IP地址>
		举个例子:
		
		
		解题思路:
			- 向容器传递环境变量:
				
			- 将这个写过写入到网站根目录即可:
			
			
			echo "<${baimei_POD_NAMENAME} ---> ${baimei_POD_NAME} ---> ${baimei_POD_IP}>" > /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 \"<h1>${baimei_POD_NAMENAME} ---> ${baimei_POD_NAME} ---> ${baimei_POD_IP}</h1>\" > /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 控制器实现负载均衡案例