반응형
안녕하세요.
공부할 때마다 설치가 필요한 서버들은 컨테이너로 띄워서 사용하는데,
tunnel이..... 말썽이라 터미널로 port-forward하기 싫어서 다양한 방법을 기록하고 있습니다.
쿠버네티스는 버전마다 문법이 조금씩 달라지니 답답할 때가 많아서 버전부터 명시하였습니다.
예제 - spark with zeppelin
목차
- 환경 정보
- deployment
- service
- minikube service url
- open
1. 환경 정보
pc
- mac: monterey
minikube
- driver: hyperkit
- version: v1.23.3
kubernetes
clientVersion:
buildDate: "2022-05-03T13:36:49Z"
compiler: gc
gitCommit: 4ce5a8954017644c5420bae81d72b09b735c21f0
gitTreeState: clean
gitVersion: v1.24.0
goVersion: go1.18.1
major: "1"
minor: "24"
platform: darwin/amd64
kustomizeVersion: v4.5.4
serverVersion:
buildDate: "2022-01-25T21:19:12Z"
compiler: gc
gitCommit: 816c97ab8cff8a1c72eccca1026f7820e93e0d25
gitTreeState: clean
gitVersion: v1.23.3
goVersion: go1.17.6
major: "1"
minor: "23"
platform: linux/amd64
2. deployment yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: spark-zeppelin-deployment
labels:
app: spark-zeppelin
spec:
replicas: 1
template:
metadata:
name: spark-zeppelin
labels:
app: spark-zeppelin
spec:
containers:
- name: spark-zeppelin
image: apache/zeppelin:0.8.1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 4040
name: zeppelin-port
- containerPort: 8080
name: zeppelin-web
env:
- name: ZEPPELIN_NOTEBOOK_DIR
value: /notebook
- name: ZEPPELIN_LOG_DIR
value: /logs
command:
- /zeppelin/bin/zeppelin.sh
volumeMounts:
- mountPath: $PWD/logs
name: spark-logs
securityContext:
privileged: true
volumes:
- name: spark-logs
emptyDir: {}
restartPolicy: Always
selector:
matchLabels:
app: spark-zeppelin
kubectl create -f spark-zeppelin-deployment.yaml
3. service yaml
apiVersion: v1
kind: Service
metadata:
name: spark-zeppelin-service
spec:
type: LoadBalancer
selector:
app: spark-zeppelin
ports:
- name: zeppelin-web-service
port: 8080
targetPort: zeppelin-web
kubectl create -f spark-zeppelin-service.yaml
4. minikube service list
minikube service spark-zeppelin-service --url
http://192.168.64.3:31634
5. open
open -a /Applications/Whale.app/Contents/MacOS/Whale $(minikube service spark-zeppelin-service --url)
번외
스파크 배포할 때마다 `pod 이름을 찾아서` logs 하는게 번거로워서 너덜너덜하게 grep을 사용했습니다.
kubectl logs -f $(kubectl get pod | grep -o '^spark[a-zA-Z0-9-]*')
deployment가 spark로 시작하고 있으니 아래가 주요한 내용이 될 것 같습니다.
kubectl get pod | grep -o '^spark[a-zA-Z0-9-]*'
-o : 매치된 내용만 추출
반응형