火山云代理商:火山云服务器如何在K8s中使用SLB?

本文由火山云代理商【聚搜云】撰写

准备工作

  1. 创建SLB实例:登录火山云控制台,进入负载均衡服务,创建一个公网SLB实例,选择合适的规格和付费方式。
  2. 配置SLB监听:在SLB实例中添加TCP/UDP监听,端口设置为Kubernetes API Server的端口(默认为6443),并将master节点的ECS实例添加到后端服务器组。

创建Service资源

  1. 创建Service YAML文件:使用以下YAML文件创建一个NodePort类型的Service资源,将端口80映射到Pod的8080端口,并启用NodePort类型。

    yaml

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
      type: NodePort
    
  2. 应用Service资源:将Service资源应用到Pod。

    bash

    kubectl apply -f my-service.yaml
    

创建Pod资源

  1. 创建Pod YAML文件:创建一个Pod资源,并将其标记为app: my-app,以便Service可以将其选中。

    yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      containers:
        - name: my-container
          image: nginx:latest
          ports:
            - containerPort: 8080
    
  2. 应用Pod资源:将Pod资源应用到集群。

    bash

    kubectl apply -f my-pod.yaml
    

配置Kubernetes API Server

  1. 修改kube-apiserver配置文件:确保API Server监听内网IP。
  2. 配置kubelet和kube-proxy:使用SLB的公网IP访问API Server。

验证部署

  1. 验证集群节点状态:使用kubectl get nodes命令验证集群节点状态。

  2. 访问Service:通过以下URL访问Service

  3. 通过SLB访问API Server:确保能够通过公网SLB IP访问Kubernetes API Server,并且能够正常响应。