Service with custom health check configuration:
apiVersion: v1
kind: Service
metadata:
name: web-healthcheck
annotations:
service.beta.kubernetes.io/linode-loadbalancer-check-type: "http"
service.beta.kubernetes.io/linode-loadbalancer-check-path: "/healthz"
service.beta.kubernetes.io/linode-loadbalancer-check-interval: "5"
service.beta.kubernetes.io/linode-loadbalancer-check-timeout: "3"
service.beta.kubernetes.io/linode-loadbalancer-check-attempts: "2"
service.beta.kubernetes.io/linode-loadbalancer-check-passive: "true"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: web
Service with firewall rules:
kind: Service
apiVersion: v1
metadata:
name: restricted-access
annotations:
service.beta.kubernetes.io/linode-loadbalancer-firewall-acl: |
{
"allowList": {
"ipv4": ["192.166.0.0/16", "172.23.41.0/24"],
"ipv6": ["2001:DB8::/128"]
}
}
spec:
type: LoadBalancer
selector:
app: restricted-app
ports:
- name: http
port: 80
targetPort: 8080
Service with sticky sessions:
apiVersion: v1
kind: Service
metadata:
name: sticky-service
spec:
type: LoadBalancer
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 100
selector:
app: sticky-app
ports:
- port: 80
targetPort: 8080
apiVersion: v1
kind: Service
metadata:
name: custom-nodes
spec:
type: LoadBalancer
selector:
app: custom-app
ports:
- port: 80
# Only use nodes with specific labels
externalTrafficPolicy: Local
---
# Example node with custom annotation
apiVersion: v1
kind: Node
metadata:
name: custom-node
annotations:
node.k8s.linode.com/private-ip: "192.168.1.100"
For more examples, see: