(이미지만 참고) Refernece : https://www.youtube.com/watch?v=TFAASAfO_gg
외부 또는 중요한 내부 서버와 통신할 때 ACL을 뚫어서 통신할 때가 있다.
현재 kubernetes 클러스터의 서버(node)만 보고 ACL을 뚫으면 나중에 새로운 서버가 추가되고 새로운 장비에 실행된 pod에서는 막힌 부분 때문에 에러가 발생할 것이다.
특정 장비(node)에만 pod를 배포하면 이슈가 없을 것이다.
이에 대한 2가지 방법이 있다.
1. pod 적용
이 방식은 공식 문서에 있는 방식이다.
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2. deployment 적용
$ kubectl label nodes google-k8s-worker001 server=google-config
$ kubectl label nodes google-k8s-worker002 server=google-config
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: google-config
namespace: production
spec:
selector:
matchLabels:
app: google-config
replicas: 2
minReadySeconds: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 3
maxUnavailable: 3
template:
metadata:
labels:
app: google-config
spec:
nodeSelector:
server: google-config
containers:
- name: google-config
image: dockerhub-url
imagePullPolicy: Always
테스트 방법은 다음과 같다.
google-config를 1번 2번 장비에서만 실행되게 했다.
$ kubectl delete pod $(kubectl get pods | grep config | awk '{print $1}')
삭제된 pod가 계속 1번 2번 장비에서 실행되는지 확인한다.
'Cloud' 카테고리의 다른 글
[kubernetes] helm 차트 설치 및 삭제 커맨드 (0) | 2019.09.16 |
---|---|
[kubernetes] Service.spec.type 잘 익숙해지기 (0) | 2019.09.11 |
[kubernetes] dockerfiles env 적용하기 (0) | 2019.09.10 |
[kubernetes] 네임스페이스(namespace)별 인증서 유의 사항 (0) | 2019.09.09 |
[kubernetes] kubernetes 앱 실행/종료하기 (처음 테스트할때) (0) | 2019.09.06 |