Las anotaciones en el archivo YAML de un Service permiten habilitar funciones adicionales de balanceo de carga para su Network Load Balancer (NLB). Por ejemplo, puede especificar el tipo de red del NLB, habilitar la protección contra modificaciones y configurar la autenticación mutua. Este tema explica cómo usar estas anotaciones para configurar el NLB. Las configuraciones se organizan en tres tipos de recursos: la instancia de NLB, los listeners y los server groups.
Índice
Categoría | Categoría de función | Enlace de configuración |
Creación | ||
Configuración de instancia | ||
Creación | ||
Configuración de listener | ||
Configuración de seguridad | ||
Configuración de servidor | ||
Notas
Asegúrese de que su clúster tenga la versión v1.24 o posterior y que el complemento Cloud Controller Manager (CCM) sea de la versión v2.5.0 o posterior. Para actualizar el clúster, consulte Manually upgrade a cluster; para actualizar el complemento, consulte Manage components.
En la definición del Service, establezca
spec.loadBalancerClasscomoalibabacloud.com/nlb. Si no se especifica este parámetro, se crea un Classic Load Balancer (CLB) de forma predeterminada.Una vez creado el Service, no es posible modificar el campo
spec.loadBalancerClass. Tampoco se permite convertir el tipo de load balancer de CLB a NLB ni viceversa.No es posible gestionar instancias de NLB desde la consola de ACK. Debe utilizar comandos de
kubectlpara todas las operaciones de gestión.
Operaciones de NLB
Crear un NLB público
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Descripción | Versiones de CCM compatibles |
Especifica la zona, el vSwitch, la dirección IP privada y la información de EIP para el NLB. El formato es el siguiente:
| Zonas e ID de vSwitch: v2.5.0 o posterior Direcciones IP privadas y EIP: v2.12.1 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Crear un NLB privado
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
Descripción | Versiones de CCM compatibles |
Especifica el tipo de red del NLB. Puede cambiar el valor de esta anotación para alternar el NLB entre público y privado. Valores válidos:
Valor predeterminado: Inicie sesión en la consola de NLB para consultar las regiones y zonas compatibles. Se requieren como mínimo dos zonas. Separe varias zonas con comas, por ejemplo, | v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar una dirección IP privada
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Descripción | Versiones de CCM compatibles |
Especifica la zona, el vSwitch, la dirección IP privada y la información de EIP para el NLB. El formato es el siguiente:
|
|
apiVersion: v1
kind: Service
metadata:
annotations:
# For example, cn-hangzhou-k:vsw-i123456:10.1.0.1,cn-hangzhou-j:vsw-j654321:10.2.0.1
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A}:${private-ipv4-A},${zone-B}:${vsw-B}:${private-ipv4-B}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar un ID de instancia de EIP
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps
Descripción | Versiones de CCM compatibles |
Especifica la zona, el vSwitch, la dirección IP privada y la información de EIP para el NLB. El formato es el siguiente:
| Zonas e ID de vSwitch: v2.5.0 o posterior Direcciones IP privadas y EIP: v2.12.1 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
# If you do not need a private IP address, leave the private IP address field empty.
# For example, cn-hangzhou-k:vsw-i123456::eip-12345,cn-hangzhou-j:vsw-j654321::eip-54321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A}::${eip-A},${zone-B}:${vsw-B}::${eip-B}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar el nombre del load balancer
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
|
Descripción |
Versiones de CCM compatibles |
|
Especifica el nombre de la instancia de load balancer. El nombre debe tener entre 2 y 128 caracteres, comenzar con una letra o un carácter chino, y puede contener dígitos, puntos (.), guiones bajos (_) y guiones (-). |
v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # The name of the NLB instance.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar un resource group
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
|
Descripción |
Versiones de CCM compatibles |
|
Especifica el resource group para el load balancer. El ID del resource group no se puede modificar después de establecerlo. Puede encontrar el ID del resource group en la consola de Resource Management. |
v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "${your-resource-group-id}" # The ID of the resource group.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Crear un NLB de doble pila
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Para adjuntar servidores de backend IPv6, consulte Attach IPv6 backend servers.
Descripción | Versiones de CCM compatibles |
El modo kube-proxy del clúster debe ser IPVS. Especifica la versión del protocolo IP del NLB. La versión del protocolo IP no se puede modificar después de la creación. Valores válidos:
Valor predeterminado: | v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Agregar etiquetas adicionales
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
Descripción | Versiones de CCM compatibles |
Puede agregar etiquetas adicionales. Utilice una coma (,) para separar varias etiquetas. Por ejemplo, Importante Después de agregar esta anotación, cualquier modificación manual de etiquetas aplicada a la instancia de load balancer en la consola se sobrescribirá. | v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Usar un load balancer existente
No agregue ni modifique la anotación de reutilización en un Service de tipo LoadBalancer existente. Hacerlo podría provocar un error en la reutilización o impedir que se libere el load balancer creado por CCM.
Anotación: se utilizan varias anotaciones, tal como se describe en la siguiente tabla.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | Especifica el ID del load balancer existente. | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | Indica si se sincronizan las configuraciones de los listeners de NLB según la configuración del Service. Valores válidos:
Valor predeterminado: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # The ID of the NLB instance.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Vincular un paquete de ancho de banda compartido
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id
|
Descripción |
Versiones de CCM compatibles |
|
Especifica el ID del paquete de ancho de banda compartido que se va a vincular. Puede encontrar el ID del paquete de ancho de banda compartido en la consola de VPC. |
v2.9.1 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id: "cbwp-xxxxxxxxxx"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar el reenvío entre zonas
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cross-zone-enabled
Descripción | Versiones de CCM compatibles |
Indica si se habilita el reenvío entre zonas. Valores válidos:
Valor predeterminado: | v2.13.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cross-zone-enabled: "off"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar una lista de permitidos de direcciones IP de origen
Campo: .spec.loadBalancerRanges
Descripción | Versiones de CCM compatibles |
Esta función solo aplica a instancias de NLB creadas y gestionadas por CCM. No es compatible con instancias reutilizadas. Cuando configura este campo, CCM crea automáticamente un security group, establece las reglas de acceso necesarias y asocia el security group con la instancia de NLB. Si no configura este campo o lo deja vacío, no se asocia ningún security group. Valor predeterminado: Ninguna Importante
| v2.14.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
name: nginx
namespace: default
spec:
# Specify the allowed source IP address CIDR blocks.
loadBalancerSourceRanges:
- 10.0.0.0/8
- 172.16.0.0/16
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Especificar el tipo de red IPv6
Anotación: se utilizan varias anotaciones, como se describe en la siguiente tabla.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version | El modo kube-proxy del clúster debe ser IPVS. Esta anotación especifica la versión del protocolo IP para el NLB. La versión del protocolo IP no se puede cambiar después de crearlo. Valores válidos:
Valor predeterminado: | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type | Especifica el tipo de red de la dirección IPv6 del NLB. Valores válidos:
Valor predeterminado: Nota Para usar una dirección IPv6 pública, debe existir una puerta de enlace IPv6 en la VPC donde se despliega la instancia de NLB. Para obtener más información, consulte Create and manage an IPv6 gateway. | v2.9.1 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type: internet # Specify the IPv6 network type as public.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Operaciones de listener
Establecer un security group de listener
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids
|
Descripción |
Versiones de CCM compatibles |
|
Especifica los ID de los security groups que se van a asociar con el listener. Separe varios ID con una coma (,), por ejemplo, |
v2.6.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids: "sg-aaaaa,sg-bbbbb" # Separate multiple security group IDs with a comma (,).
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar un listener TCP y UDP
|
Descripción |
Versiones de CCM compatibles |
|
Esta función requiere Kubernetes v1.24 o posterior. Para obtener más información sobre cómo actualizar un clúster, consulte Upgrade an ACK Kubernetes cluster. |
N/A |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: udp
port: 80
protocol: UDP
targetPort: 81
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Crear un listener TCP
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Crear un listener UDP
Si no especifica una comprobación de estado al crear un listener UDP, se habilita automáticamente una comprobación de estado TCP para el grupo de servidores. En los listeners UDP, se recomienda usar una anotación para especificar explícitamente una comprobación de estado UDP o para deshabilitar las comprobaciones de estado.
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: udp
port: 80
protocol: UDP
targetPort: 80
selector:
app: nginx
sessionAffinity: None
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Crear un listener TCPSSL
Anotación: consulte la siguiente tabla para ver las anotaciones obligatorias.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica el protocolo del listener. Para especificar varios protocolos, sepárelos con una coma (,), por ejemplo, | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obtener el ID, inicie sesión en la consola de Certificate Management Service, cree un certificado y busque el ID en la página SSL Certificate Management. La siguiente imagen muestra un ejemplo:
|
Actualmente, los listeners TCP/SSL no son compatibles con grupos de servidores que tienen client IP address persistence habilitado. Esto significa que no puede configurar las anotaciones service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:${port}" y service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on" al mismo tiempo. Si necesita obtener direcciones IP de clientes mediante el NLB, consulte Obtain real client IP addresses on backend servers through NLB.
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar un rango de puertos de listener
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range
Descripción | Versiones de CCM compatibles |
Esta función requiere el plugin de red Terway. Puede configurar un listener para que escuche en un rango de puertos específico. La instancia de NLB reenvía entonces el tráfico de ese rango de puertos al mismo rango de puertos en los servidores backend. Por ejemplo, si configura el rango de puertos 80-100, el tráfico hacia los puertos 80 a 100 de la instancia de NLB se reenvía a los puertos 80 a 100 de los servidores backend. El formato es El valor | v2.11.4 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
# Configure listeners for the 80-100 and 400-500 port ranges.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-listener-port-range: "80-100:80,400-500:443"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
# This port configuration is mapped to the 80-100 range.
port: 80
protocol: TCP
# The targetPort specifies the health check port for the backend servers and must be an integer.
targetPort: 80
- name: https
# This port configuration is mapped to the 400-500 range.
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Habilitar la autenticación mutua
Anotación: consulte la siguiente tabla para ver las anotaciones obligatorias.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica el protocolo del listener. Para especificar varios protocolos, sepárelos con una coma (,), por ejemplo, | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obtener el ID, inicie sesión en la consola de Certificate Management Service, cree un certificado y busque el ID en la página SSL Certificate Management. La siguiente imagen muestra un ejemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id | Para obtener el ID, inicie sesión en la consola de Certificate Management Service y busque el ID en los detalles del certificado dentro de la página PCA Certificate Management.
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert | Especifica si se habilita la autenticación mutua. Valores válidos:
Valor predeterminado: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Establecer una política de seguridad TLS
Anotación: consulte la siguiente tabla para ver las anotaciones obligatorias.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica el protocolo del listener. Para especificar varios protocolos, sepárelos con una coma (,), por ejemplo, | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obtener el ID, inicie sesión en la consola de Certificate Management Service, cree un certificado y busque el ID en la página SSL Certificate Management. La siguiente imagen muestra un ejemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | El ID de la política de seguridad TLS. Puede usar políticas de seguridad definidas por el sistema o personalizadas. Valores válidos:
Valor predeterminado: |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_0"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Habilitar Proxy Protocol
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
Descripción | Versiones de CCM compatibles |
Especifica si se usa Proxy Protocol para pasar las direcciones IP de los clientes a los servidores backend. Valores válidos:
Valor predeterminado: Importante Antes de habilitar Proxy Protocol, asegúrese de que sus servicios backend admitan Proxy Protocol v2. De lo contrario, las conexiones fallarán. Configure este parámetro con precaución. | v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Pasar información adicional mediante Proxy Protocol
Anotación: consulte la siguiente tabla para ver las anotaciones obligatorias.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol | Especifica si se usa Proxy Protocol para pasar las direcciones IP de los clientes a los servidores backend. Valores válidos:
Valor predeterminado: Importante Antes de habilitar Proxy Protocol, asegúrese de que sus servicios backend admitan Proxy Protocol v2. De lo contrario, las conexiones fallarán. Configure este parámetro con precaución. | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled | Especifica si se usa Proxy Protocol para pasar el VpcId a los servidores backend. Valores válidos:
Valor predeterminado: | v2.9.1 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled | Especifica si se usa Proxy Protocol para pasar el PrivateLinkEpId a los servidores backend. Valores válidos:
Valor predeterminado: | v2.9.1 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled | Especifica si se usa Proxy Protocol para pasar el PrivateLinkEpsId a los servidores backend. Valores válidos:
Valor predeterminado: | v2.9.1 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Establecer un límite de velocidad de conexión del listener
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps
|
Descripción |
Versiones de CCM compatibles |
|
El número máximo de conexiones nuevas por segundo para una instancia de Network Load Balancer (NLB). El valor debe ser un número entero del 0 al 1,000,000. Un valor de 0 indica que no hay límite. |
v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps: "100"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Establecer un tiempo de espera de inactividad del listener
Anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout
|
Descripción |
Versiones de CCM compatibles |
|
El tiempo de espera de inactividad de la conexión en segundos. Valores válidos: de 10 a 900. Valor predeterminado: 900 |
v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "60"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Establecer una política ALPN
Anotación: consulte la siguiente tabla para ver las anotaciones obligatorias.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica el protocolo del listener. Para especificar varios protocolos, sepárelos con una coma (,), por ejemplo, | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obtener el ID, inicie sesión en la consola de Certificate Management Service, cree un certificado y busque el ID en la página SSL Certificate Management. La siguiente imagen muestra un ejemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn | Especifica si se habilita Application-Layer Protocol Negotiation (ALPN). Valores válidos:
Valor predeterminado: | v2.10.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy | La política ALPN. Valores válidos:
Para obtener más información, consulte el parámetro |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy: "HTTP1Only"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Configurar certificados adicionales
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | Especifica el protocolo del listener. Para especificar varios protocolos, sepárelos con una coma (,); por ejemplo, | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | Para obtener el ID, inicie sesión en la Certificate Management Service console, cree un certificado y busque el ID en la página SSL Certificate Management. A continuación se muestra un ejemplo:
| |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-cert-ids | Los ID de los certificados adicionales. Separe varios ID de certificado con una coma (,). Para obtener los ID, inicie sesión en la Certificate Management Service console, cree los certificados y busque sus ID en la página SSL Certificate Management. A continuación se muestra un ejemplo:
| v2.13.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${CertIdentifier}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-cert-ids: "${CertIdentifier-1},${CertIdentifier-2}" # Separate multiple additional certificate IDs with a comma (,).
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Operaciones típicas para grupos de servidores
Algoritmo de programación
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
Descripción | Versiones de CCM compatibles |
El algoritmo de programación. Valores válidos:
Valor predeterminado: Para obtener más información sobre los valores de esta anotación, consulte el parámetro | v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "sch"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Drenaje de conexiones
anotación: Hay varias anotaciones disponibles, como se describe en la tabla a continuación.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain | Especifica si se habilita el drenaje de conexiones. Si se habilita, ocurre lo siguiente cuando se elimina un servidor de backend o este falla las comprobaciones de estado:
Valor predeterminado: | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout | El periodo de tiempo de espera para el drenaje de conexiones.
|
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Conservación de la IP del cliente
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip
Descripción | Versiones de CCM compatibles |
Especifica si se habilita la conservación de la IP del cliente. Valores válidos:
Valor predeterminado: | v2.5.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Comprobaciones de estado TCP
anotación: Hay varias anotaciones disponibles, como se describe en la tabla a continuación. Para configurar las comprobaciones de estado TCP, todas las anotaciones siguientes son obligatorias. De forma predeterminada, las comprobaciones de estado están habilitadas para los puertos TCP.
Anotación | Descripción |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Especifica si se habilitan las comprobaciones de estado. Valores válidos:
Valor predeterminado: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | El protocolo de la comprobación de estado. Valores válidos:
Valor predeterminado: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | El puerto del servidor de backend que se usa para las comprobaciones de estado. Valores válidos: de |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | El tiempo máximo de espera para recibir una respuesta de la comprobación de estado. Unidad: segundos. Valores válidos: de Valor predeterminado: 5 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | La cantidad de comprobaciones de estado exitosas consecutivas necesarias para considerar que un servidor de backend está en buen estado. Valores válidos: de Valor predeterminado: 2 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | La cantidad de comprobaciones de estado fallidas consecutivas necesarias para considerar que un servidor de backend está con errores. Valores válidos: de Valor predeterminado: 2 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | El intervalo entre comprobaciones de estado consecutivas. Unidad: segundos. Valores válidos: de Valor predeterminado: 5 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Comprobaciones de estado UDP
anotación: Hay varias anotaciones disponibles y todas son obligatorias. Para usar comprobaciones de estado UDP, asegúrese de que todos los puertos definidos en el Service utilicen el protocolo UDP.
Anotación | Descripción |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Especifica si se habilitan las comprobaciones de estado. Valores válidos:
Valor predeterminado: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | El protocolo de la comprobación de estado. Valores válidos:
Valor predeterminado: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | El puerto del servidor que se usa para las comprobaciones de estado. Valores válidos: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | El tiempo de espera de respuesta para una sola comprobación de estado. Si se agota el tiempo, la comprobación actual se considera fallida. Unidad: segundos. Rango de valores: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | Un servidor de backend se considera en buen estado después de superar la cantidad especificada de comprobaciones de estado consecutivas. Valores válidos: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | Valor predeterminado: 2 El servidor de backend se considera con errores después de esta cantidad de fallos consecutivos en las comprobaciones de estado. Valores válidos: |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | El intervalo entre comprobaciones de estado consecutivas. Unidad: segundos. Rango de valores: Este valor debe ser mayor que el valor de |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "udp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: udp
port: 80
protocol: UDP
targetPort: 80
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Comprobaciones de estado HTTP
anotación: Hay varias anotaciones disponibles, como se describe en la tabla a continuación. Para configurar las comprobaciones de estado HTTP, todas las anotaciones siguientes son obligatorias. De forma predeterminada, las comprobaciones de estado usan el protocolo TCP.
Anotación | Descripción | Versiones de CCM compatibles |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | Especifica si se habilitan las comprobaciones de estado. Valores válidos:
Valor predeterminado: | v2.5.0 o posterior |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | El protocolo de la comprobación de estado. Valores válidos:
Valor predeterminado: | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | La ruta para la comprobación de estado. Debe tener entre 1 y 80 caracteres, comenzar con una barra diagonal ( Nota Este parámetro es válido solo cuando | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | El nombre de dominio que se usa para las comprobaciones de estado. Valores válidos:
Nota Este parámetro es válido solo cuando | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port | El puerto del servidor de backend que se usa para las comprobaciones de estado. Valores válidos: de | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | El tiempo máximo de espera para recibir una respuesta de la comprobación de estado. Unidad: segundos. Valores válidos: de Valor predeterminado: 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | La cantidad de comprobaciones de estado exitosas consecutivas necesarias para considerar que un servidor de backend está en buen estado. Valores válidos: de Valor predeterminado: 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | La cantidad de comprobaciones de estado fallidas consecutivas necesarias para considerar que un servidor de backend está con errores. Valores válidos: de Valor predeterminado: 2 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | El intervalo entre comprobaciones de estado consecutivas. Unidad: segundos. Valores válidos: de Valor predeterminado: 5 | |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | El método de la comprobación de estado. Valores válidos:
Nota Este parámetro es válido solo cuando |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.test.com"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
# Set the health check method. This annotation is optional.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Tipo de grupo de servidores
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type
Descripción | Versiones de CCM compatibles |
El tipo de grupo de servidores. Valores válidos:
Valor predeterminado: Para obtener más información sobre los tipos de grupos de servidores de NLB, consulte Server groups. | v2.8.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Servidores de backend IPv6
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-ip-version
Descripción | Versiones de CCM compatibles |
La versión de IP de los servidores de backend en el grupo de servidores.
Valor predeterminado: ipv4 Nota Cuando agrega servidores de backend IPv4 e IPv6 a un mismo grupo de servidores, el uso de la cuota de pods se duplica. |
|
Reutilización de un grupo de servidores
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
Esta anotación le permite reutilizar un grupo de servidores existente. Solo surte efecto cuando reutiliza una instancia NLB existente. Para ver un ejemplo, consulte Deploy services across clusters by reusing a load balancer.
Peso del tráfico del servicio
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
En escenarios donde varios Services reutilizan la misma instancia NLB, puede usar esta anotación para establecer el peso del tráfico del Service actual. Esta anotación solo surte efecto cuando reutiliza un grupo de servidores existente. Para ver un ejemplo, consulte Deploy services across clusters by reusing a load balancer.
Ignorar las actualizaciones de peso
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update
Descripción | Versiones de CCM compatibles |
Cuando se establece en
Valor predeterminado: | v2.11.1 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer
Peso predeterminado del servidor de backend
anotación: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight
Descripción | Versiones de CCM compatibles |
El peso predeterminado de los servidores de backend en el grupo de servidores. Un peso mayor significa que el servidor recibe una proporción más grande del tráfico entrante. La cantidad aumenta. Valores válidos: de Esta configuración no surte efecto cuando la instancia de backend es una instancia ECS y el valor de | v2.14.0 o posterior |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # For example, cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
# Sets the default weight of servers in the server group to 35.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight: "35"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
selector:
app: nginx
loadBalancerClass: "alibabacloud.com/nlb"
type: LoadBalancer

