如果您有其他问题,可以联系北京志远天辰天翼云代理商,为您提供一对一专业全面的技术服务,同时新/老天翼云会员,均可享受我公司代理商价格,欢迎咨询!
本节以nginx为例,说明kubectl命令实现负载均衡 ( LoadBalancer )访问的方法。
前提条件
请参见3.17 通过Kubectl连接集群配置kubectl命令,使弹性云服务器连接集群。
步骤1:登录已配置好kubectl命令的弹性云服务器。登录方法请参见登录Linux弹性云服务器。
步骤2:创建并编辑nginx-deployment.yaml以及nginx-elb-svc.yaml文件。
其中,nginx-deployment.yaml和nginx-elb-svc.yaml为自定义名称,您可以随意命名。
vi nginx-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
imagePullSecrets:
- name: default-secret
vi nginx-elb-svc.yaml
若需要开启会话保持,需要满足如下条件:
应用管理协议为TCP。
应用管理的各实例已设置反亲和部署,即所有的实例都部署在不同节点上。详细请参见指定应用管理部署在不同节点。
apiVersion: v1
kind: Service
metadata:
annotations:
kubernetes.io/elb.class: union #对接增强型负载均衡需要加此参数,若对接经典型负载均衡(已停售),值为elasticity
kubernetes.io/elb.id: 3c7caa5a-a641-4bff-801a-feace27424b6 #可选,为负载均衡增强型实例的ID
kubernetes.io/elb.subnet-id: 5083f225-9bf8-48fa-9c8b-67bd9693c4c0 #可选,当自动创建时必填,1.11.7-r0以上的版本可不填
kubernetes.io/elb.autocreate: >-
{"type":"public","bandwidth_name":"cce-bandwidth-1558492655112","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_sbgp"} #必填
labels:
app: nginx
name: nginx
spec:
loadBalancerIP: 10.78.42.242 #配置为ELB的IP地址
ports:
- name: service0
port: 80 #集群虚拟IP的访问端口,也是注册到负载均衡上的端口
protocol: TCP
targetPort: 80 #对应界面上的容器端口
selector:
app: nginx
type: LoadBalancer
步骤3:创建应用管理。
kubectl create -f nginx-deployment.yaml
回显如下,表示应用管理已开始创建。
deployment "nginx" created
kubectl get po
回显如下,应用管理状态为Running状态,表示应用管理已运行中。
NAME READY STATUS RESTARTS AGE
etcd-0 0/1 ImagePullBackOff 0 1h
icagent-m9dkt 0/0 Running 0 3d
nginx-2601814895-c1xhw 1/1 Running 0 6s
步骤4:创建服务。
kubectl create -f nginx-elb-svc.yaml
回显如下,表示服务已创建。
service "nginx" created
kubectl get svc
回显如下,表示应用管理访问方式已设置成功,应用管理可访问。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
etcd-svc ClusterIP None <none> 3120/TCP 1h
kubernetes ClusterIP 10.247.0.1 <none> 443/TCP 3d
nginx LoadBalancer 10.247.130.196 10.78.42.242 80:31540/TCP 51s
步骤5:在浏览器中输入访问地址,例如输入10.78.42.242:31540。10.78.42.242为负载均衡实例IP地址,31540为对应界面上的访问端口。