Skip to content

Commit 949dcff

Browse files
authored
Merge pull request #492 from citrix/cic-release-1.19
updates for cic release 1.20.5
2 parents e4c3276 + 3146bf2 commit 949dcff

4 files changed

Lines changed: 115 additions & 0 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Disable API server certificate verification
2+
3+
While communicating with the API server from Citrix ingress controller or multicluster ingress, you have the option to disable the API server certificate verification on Citrix ingress controller.
4+
5+
## Disable API server certificate verification on Citrix ingress controller or Multi-cluster ingress
6+
7+
When you deploy Citrix ingress controller using YAML, you can disable the API server certificate verification by providing the following argument in the [Citrix ingress controller deployment YAML](https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/deployment/baremetal/citrix-k8s-ingress-controller.yaml) file.
8+
9+
args:
10+
- --disable-apiserver-cert-verify
11+
true
12+
13+
When you deploy Citrix ingress controller using Helm charts, the parameter `disableAPIServerCertVerify` can be mentioned as `True` in the Helm values file as follows:
14+
15+
disableAPIServerCertVerify: True
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Traffic management for external services
2+
3+
Sometimes, all the available services of an application may not be deployed completely on a single Kubernetes cluster. You may have applications that rely on the services outside of one cluster as well. In this case, micro services need to define an [ExternalName](https://kubernetes.io/docs/concepts/services-networking/service/#externalname) service to resolve the domain name. However, in this approach, you would not be able to get features such as traffic management, policy enforcement, fail over management and so on. As an alternative, you can configure Citrix ADC to resolve the domain names and leverage the features of Citrix ADC.
4+
5+
## Configure Citrix ADC to reach external services
6+
7+
You can configure Citrix ADC as a domain name resolver using Citrix ingress controller. When you configure Citrix ADC as domain name resolver, you need to resolve:
8+
9+
- Reachability of Citrix ADC from microservices
10+
- Domain name resolution at Citrix ADC to reach external services
11+
12+
### Configure a service for reachability from Kubernetes cluster to Citrix ADC
13+
14+
To reach Citrix ADC from microservices, you have to define a headless service which would be resolved to a Citrix ADC service and thus the connectivity between microservices and Citrix ADC establishes.
15+
16+
apiversion: v1
17+
kind: Service
18+
metadata:
19+
name: external-svc
20+
spec:
21+
selector:
22+
app: cpx
23+
ports:
24+
- protocol: TCP
25+
port:80
26+
27+
### Configure Citrix ADC as a domain name resolver using Citrix ingress controller
28+
29+
You can configure Citrix ADC through Citrix ingress controller to create a domain based service group using the ingress annotation `ingress.citrix.com/external-service`. The value for `ingress.citrix.com/external-service` is a list of external name services with their corresponding domain names. For Citrix ADC VPX, name servers are configured on Citrix ADC using the ConfigMap.
30+
31+
**Note:** ConfigMaps are used to configure name servers on Citrix ADC only for Citrix ADC VPX. For Citrix ADC CPX, CoreDNS forwards the name resolution request to the upstream DNS server.
32+
33+
### Traffic management using Citrix ADC CPX
34+
35+
The following diagram explains Citrix ADC CPX deployment to reach external services. An Ingress is deployed where the external service annotation is specified to configure DNS on Citrix ADC CPX.
36+
37+
**Note:**
38+
A ConfigMap is used to configure name servers on Citrix ADC VPX.
39+
40+
![Traffic management with Citrix ADC CPX](../media/cpx-traffic.png)
41+
42+
In this deployment:
43+
44+
1. A microservice sends the DNS query for www.externalsvc.com which would get resolved to the Citrix ADC CPX service.
45+
2. Citrix ADC CPX resolves www.externalsvc.com and reaches external service.
46+
47+
Following are the steps to configure Citrix ADC CPX to load balance external services:
48+
49+
1. Define a headless service to reach Citrix ADC.
50+
51+
apiVersion: v1
52+
kind: Service
53+
metadata:
54+
name: external-svc
55+
spec:
56+
selector:
57+
app: cpx
58+
ports:
59+
- protocol: TCP
60+
port: 80
61+
62+
1. Define an ingress and specify the external-service annotation as specified in the [dbs-ingress.yaml](https://github.com/citrix/citrix-k8s-ingress-controller/tree/master/example/load-balance-external/db-ingress.yaml) file. When you specify this annotation, Citrix ingress controller creates DNS servers on Citrix ADC and binds the servers to the corresponding service group.
63+
64+
65+
annotations:
66+
ingress.citrix.com/external-service: '{"external-svc": {"domain": "www.externalsvc.com"}}'
67+
68+
1. Add the IP address of the DNS server on Citrix ADC using ConfigMap.
69+
70+
**Note:** This step is applicable only for Citrix ADC VPX.
71+
72+
```
73+
apiVersion: v1
74+
kind: ConfigMap
75+
metadata:
76+
name: nameserver-cmap
77+
namespace: default
78+
data:
79+
NS_DNS_NAMESERVER: '[]'
80+
```
81+

docs/media/cpx-traffic.png

211 KB
Loading
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: Ingress
3+
metadata:
4+
name: dbs-ingress
5+
annotations:
6+
kubernetes.io/ingress.class: "cpx-ingress"
7+
ingress.citrix.com/external-service: '{"external-svc": {"domain": "www.externalsvc.com"}}'
8+
spec:
9+
rules:
10+
- host: "www.portal.externalsvc.com"
11+
http:
12+
paths:
13+
- backend:
14+
service:
15+
name: my-external-service
16+
port:
17+
number: 30036
18+
path: /
19+
pathType: Prefix

0 commit comments

Comments
 (0)