https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/private-clusters.html
구축 방법배포 파일
cluster.yamlapiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: wsi-cluster
version: "1.31"
region: ap-northeast-2
cloudWatch:
clusterLogging:
enableTypes: ["*"]
iam:
withOIDC: true
serviceAccounts:
- metadata:
name: aws-load-balancer-controller
namespace: kube-system
wellKnownPolicies:
awsLoadBalancerController: true
- metadata:
name: cert-manager
namespace: cert-manager
wellKnownPolicies:
certManager: true
privateCluster:
enabled: true
skipEndpointCreation: true
vpc:
securityGroup: sg-0c1843d9c76955861 # Ingress 443 Egress All traffic
subnets:
private:
ap-northeast-2a: { id: private_a }
ap-northeast-2b: { id: private_b }
managedNodeGroups:
- name: wsi-app-nodegroup
instanceName: wsi-app-node
instanceType: c5.large
desiredCapacity: 2
minSize: 2
maxSize: 4
privateNetworking: true
eksctl create cluster -f cluster.yaml
deployment.yamlapiVersion: apps/v1
kind: Deployment
metadata:
name: node
namespace: default
labels:
app: node
spec:
replicas: 2
selector:
matchLabels:
app: node
template:
metadata:
labels:
app: node
spec:
containers:
- name: node
image: 362708816803.dkr.ecr.ap-northeast-2.amazonaws.com/app:latest
ports:
- containerPort: 8080
kubectl apply -f deployment.yaml
service.yamlapiVersion: v1
kind: Service
metadata:
name: node
namespace: default
spec:
selector:
app: node
type: ClusterIP
sessionAffinity: None
sessionAffinityConfig:
clientIP:
timeoutSeconds: 10800
ports:
- name: node
protocol: TCP
port: 8080
targetPort: 8080
kubectl apply -f service.yaml
ingress.yaml