cat <<EOF> values.yaml
nodeSelector: {
app: other
}
EOF
helm repo add eks <https://aws.github.io/eks-charts>
helm repo update eks
helm install aws-load-balancer-controller eks/aws-load-balancer-controller \\
-n kube-system \\
--set clusterName=wsi-eks-cluster \\
--set serviceAccount.create=false \\
--set serviceAccount.name=aws-load-balancer-controller \\
-f values.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wsc-ing
namespace: wsc2024
annotations:
alb.ingress.kubernetes.io/load-balancer-name: wsc2024-alb
alb.ingress.kubernetes.io/scheme: internet-facing
# alb.ingress.kubernetes.io/scheme: internal
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]'
alb.ingress.kubernetes.io/healthcheck-path: /healthcheck
alb.ingress.kubernetes.io/healthcheck-interval-seconds: '5'
alb.ingress.kubernetes.io/healthcheck-timeout-seconds: '3'
alb.ingress.kubernetes.io/healthy-threshold-count: '3'
alb.ingress.kubernetes.io/unhealthy-threshold-count: '2'
alb.ingress.kubernetes.io/target-group-attributes: deregistration_delay.timeout_seconds=30
alb.ingress.kubernetes.io/actions.targets: >
{"type":"forward","forwardConfig":{"targetGroups":[{"serviceName":"customer-svc","servicePort":8080,"weight":50},{"serviceName":"order-svc","servicePort":8080,"weight":50}]}}
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /v1/customer
pathType: Prefix
backend:
service:
name: customer-svc
port:
number: 8080
- path: /v1/order
pathType: Prefix
backend:
service:
name: order-svc
port:
number: 8080
- path: /v1/product
pathType: Prefix
backend:
service:
name: product-svc
port:
number: 8080
- path: /healthcheck
pathType: ImplementationSpecific
backend:
service:
name: targets
port:
name: use-annotation
#!/bin/bash
public_a=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=wsc2024-prod-load-sn-a" --query "Subnets[].SubnetId[]" --region us-east-1 --output text)
public_b=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=wsc2024-prod-load-sn-b" --query "Subnets[].SubnetId[]" --region us-east-1 --output text)
private_a=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=wsc2024-prod-app-sn-a" --query "Subnets[].SubnetId[]" --region us-east-1 --output text)
private_b=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=wsc2024-prod-app-sn-b" --query "Subnets[].SubnetId[]" --region us-east-1 --output text)
public_subnet_name=("$public_a" "$public_b")
private_subnet_name=("$private_a" "$private_b")
for name in "${public_subnet_name[@]}"
do
aws ec2 create-tags --resources $name --tags Key=kubernetes.io/role/elb,Value=1
done
for name in "${private_subnet_name[@]}"
do
aws ec2 create-tags --resources $name --tags Key=kubernetes.io/role/internal-elb,Value=1
done
kubectl apply -f ingress.yaml