git clone https://github.com/cloudadc/container-ingress.git
cd container-ingress/f5-cis/as3/general
What’s this
Table of Contents
F5 Container Ingress Service with AS3 agent, which BIG-IP Controller deployed in kubernetes use AS3 agent communicated with F5 BIG-IP HW/VE.
-
Advantage - L4/l7 load balance, complete BIG-IP ADC capability
-
Disadvantage - AS3 based configmap
All in One Demostrations
Get Code
Set up
kubectl create secret generic bigip-login --from-literal=username=admin --from-literal=password=admin.F5demo.com -n kube-system
kubectl create serviceaccount bigip-ctlr -n kube-system
kubectl create -f rbac.yaml
kubectl create -f cis.yaml
Demostrations
Deploy
kubectl create ns test001
kubectl create -f cm.yaml
Test
curl http://192.168.5.50/coffee
curl http://10.1.10.72/
curl -k https://10.1.10.73/
Deployment Templates
| Name | Template |
|---|---|
Standard VS + TCP profile |
"app_svc_vs": {
"class": "Service_TCP",
|
source-address persistence |
"persistenceMethods": [ "source-address" ], |
cookie persistence |
"persistenceMethods": [ "cookie" ], |
custom tcp profile |
"app_svc_vs": {
...
"profileTCP": {
"use": "customTCPProfile"
},
...
},
"customTCPProfile": {
"class": "TCP_Profile",
"idleTimeout": 600
},
|
custom http profile |
"app_svc_vs": {
...
"profileHTTP": {
"use": "customHTTPProfile"
},
...
},
"customHTTPProfile": {
"class": "HTTP_Profile",
"xForwardedFor": true
},
|
custom oneconnect prpfile |
"app_svc_vs": {
...
"profileMultiplex": {
"use": "custoOneConnectProfile"
},
...
},
"custoOneConnectProfile": {
"class": "Multiplex_Profile",
"sourceMask": "255.255.255.255"
},
|
snat |
"snat": "self", |
Connection Mirroring |
"mirroring": "L4", |
least-connections-member |
"loadBalancingMode": "least-connections-member", |
multiple monitors |
"monitors": [
"tcp",
"http"
],
|
TLS |
"serviceMain": {
"class": "Service_HTTPS",
...
"serverTLS": "webtls"
},
"webtls": {
"class": "TLS_Server",
"certificates": [
{
"certificate": "webcert"
}
]
},
"webcert": {
"class": "Certificate",
"certificate": {"bigip": "/Common/default.crt"},
"privateKey": {"bigip": "/Common/default.key"}
}
|
td |
td |
Multiports Service
1. Get Code
git clone https://github.com/cloudadc/container-ingress.git
cd container-ingress/f5-cis/as3/multiports
2. Deploy app
kubectl apply -f backend.yaml
3. Deploy configmap
kubectl apply -f cm.yaml
4. Test
curl http://192.168.5.40
curl http://192.168.5.40:8081