ingress-tomcat-http-go.yaml 파일 생성
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: tomcat-http-go-ingress
spec:
tls:
- hosts:
- tomcat.gasbugs.com
- http-go.gasbugs.com
secretName: tls-secret
rules:
- host: tomcat.gasbugs.com
http:
paths:
- path: /
backend:
serviceName: tomcat
servicePort: 80
- host: http-go.gasbugs.com
http:
paths:
- path: /
backend:
serviceName: http-go
servicePort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-tomcat
labels:
app: tomcat
spec:
replicas: 3
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: consol/tomcat-7.0
ports:
- containerPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: http-go
labels:
app: http-go
spec:
replicas: 3
selector:
matchLabels:
app: http-go
template:
metadata:
labels:
app: http-go
spec:
containers:
- name: http-go
image: gasbugs/http-go
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: http-go
spec:
selector:
app: http-go
ports:
- protocol: TCP
port: 80
targetPort: 8080
nodePort: 30001
type: NodePort
---
apiVersion: v1
kind: Service
metadata:
name: tomcat
spec:
selector:
app: tomcat
ports:
- protocol: TCP
port: 80
targetPort: 8080
nodePort: 30002
type: NodePort
create 명령으로 kubenetes 네트워크 생성
$ kubectl create -f ingress-tomcat-http-go.yaml
방화벽 정책 추가
gcloud compute firewall-rules create rule1 --allow tcp:30001-30002
tls 인증서 추가
kubectl delete secret tls-secret
openssl genrsa -out tls.key 2048
openssl req -new -x509 -key tls.key -out tls.cert -days 360 -subj /CN=tomcat.gasbugs.com
kubectl create secret tls tls-secret --cert=tls.cert --key=tls.key
curl -k <https://tomcat.gasbugs.com>
쿠버네티스 엔진에서 서비스 및 수신을 클릭하고 각각의 서비스가 잘 동작하는 지 확인한다. 특히 ingress가 잘 동작하는 지 확인 필요.
인그레스가 IP를 할당 받기 까지는 약 2분, 내부에 라이브니스를 통해 서비스 정상동작 테스트가 약 10분 소요된다. 테스트 중간에는 간헐적인 접속이 가능하다.
이 10분동안은 인그레스에 느낌표 마크가 떠있으며 인그레스를 직접 클릭하면 수신 쪽에서 테스트 현황을 파악할 수 있다. 현재는 총 세개의 서비스가 돌아가는지 파악하며 node의 30001과 30002, 30291을 모두 테스트하여 성공한 모습을 확인할 수 있다.