Enable Ingress

Prerequisites

Ingress Controller

The ingress controller manages external access to services in your cluster. Choose the appropriate installation method based on your environment:

For AWS:

kubectl apply -f https://github.com/kubernetes/ingress-nginx/blob/controller-v1.9.3/deploy/static/provider/aws/deploy.yaml 

This deployment:

  • Creates an AWS Network Load Balancer

  • Sets up required security groups

  • Configures health checks automatically

  • Enables cross-zone load balancing

For Other Cloud Providers:

kubectl apply -f https://github.com/kubernetes/ingress-nginx/blob/controller-v1.9.3/deploy/static/provider/cloud/deploy.yaml

Verify Installation:

# Check pods
kubectl get pods -n ingress-nginx
# Check services
kubectl get svc -n ingress-nginx
# View detailed configuration
kubectl describe svc ingress-nginx-controller -n ingress-nginx

Expected Output:

Certificate Manager

Cert-manager handles certificate management and issuance:

  1. Install cert-manager:

  1. Verify all components are running:

  1. Check the CRDs installation:

DNS Configuration

External-DNS automates DNS record management:

  1. Install External-DNS:

  1. Required IAM permissions (AWS):

Option 2: Manual DNS Configuration

For manual configuration:

  1. Get Load Balancer details:

  1. Create DNS records:

AWS Route53:

  • Log into AWS Console

  • Navigate to Route53 → Hosted Zones

  • Create A record:

    • Name: <SITE_INGRESS.EXAMPLE.COM>

    • Type: A

    • Alias: Yes

    • Target: Load Balancer DNS

    • Routing Policy: Simple

Verify DNS:

TLS Certificate Setup

Using cert-manager for Public Certificates

  1. Create Certificate Issuer Configuration:

  1. Apply and verify:

  1. Troubleshoot certificate issues:

Configure Ingress

Basic Configuration

Update your helm values file with ingress settings:

Advanced Configuration Options

Multiple Path Configuration

Custom Annotations

Common useful annotations:

Apply Configuration

Initial Deployment

Update Existing Deployment

Verify Setup

1. Check Ingress Resources

Expected output:

2. Verify TLS Configuration

3. Test Connectivity

Troubleshooting

Common Issues and Solutions

1. Certificate Issues

Common problems and solutions:

  • DNS Configuration: Ensure DNS records are properly propagated

  • ACME Challenge: Check if the challenge path is accessible

  • Rate Limits: Let's Encrypt has rate limits, verify you haven't exceeded them

2. Ingress Controller Issues

Common problems and solutions:

  • Port Conflicts: Verify service port mappings

  • SSL Configuration: Check TLS secret references

  • Backend Communication: Verify service endpoint health

3. Network Issues

For additional configuration options and advanced scenarios, refer to the Helm Values Reference.

Last updated

Was this helpful?