Coder Social home page Coder Social logo

Comments (11)

RyanKor avatar RyanKor commented on August 11, 2024 8

@tjems6498 이거 저도 같은 문제로 4일 동안 해맸는데, 방금 해결했습니다.

사실 올바른 해법이라고 보기는 어렵지만, http 접근 해용을 해주기 위해 manifest/apps/jupyter/jupyter-web-app/upstream/basedeployment.yaml 파일의 내용을 다음과 같이 수정했습니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment
spec:
  replicas: 1
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
    spec:
      containers:
      - name: jupyter-web-app
        image: public.ecr.aws/j1r0q0g6/notebooks/jupyter-web-app
        ports:
        - containerPort: 5000
        volumeMounts:
        - mountPath: /etc/config
          name: config-volume
        - mountPath: /src/apps/default/static/assets/logos
          name: logos-volume
        env:
        - name: APP_PREFIX
          value: $(JWA_PREFIX)
        - name: UI
          value: $(JWA_UI)
        - name: USERID_HEADER
          value: $(JWA_USERID_HEADER)
        - name: USERID_PREFIX
          value: $(JWA_USERID_PREFIX)
        - name: APP_SECURE_COOKIES # 새로이 추가한 부분
          value: "false" # 새로이 추가한 부분
      serviceAccountName: service-account
      volumes:
      - configMap:
          name: config
        name: config-volume
      - configMap:
          name: jupyter-web-app-logos
        name: logos-volume

위와 같이 deployment.yaml을 수정하고 manifest 폴더 경로에서 kustomize build apps/jupyter/jupyter-web-app/upstream/overlays/istio | kubectl apply -f -를 다시 수행하니, jupyter notebook이 생성되는 것을 볼 수 있었습니다.

manifest 레포에 APP_SECURE_COOKIES 설정 값이 없어서 왜 이 내용이 레포에 빠져 있나 했더니, https 설정이 기본이라 http 접근을 권장하지 않는 상황 때문에 설정이 안되어 있다고 하네요...

혹시 잘못된 설명이 있으면 말씀해주세요!

from mlops-for-all.github.io.

kosehy avatar kosehy commented on August 11, 2024 4

@tjems6498 저는 MetalLB 와 kubeflow-self-signing-issuer 를 사용하여 해결하였습니다.
MetallB 사용방법은 여기를 참조해서 설정하시면 됩니다.

밑에서 kubeflow-self-issuer 설정 방법은 여기를 토대로 설명하겠습니다.

먼저 gateways-issuer.yaml 파일을 작성합니다.

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: kubeflow-ingressgateway-certs
  namespace: istio-system
spec:
  secretName: kubeflow-ingressgateway-certs
  issuerRef:
    kind: ClusterIssuer
    name: gateways-issuer
  commonName: istio-ingressgateway.istio-system.svc
  ipAddresses:
  - 192.168.35.100 # istio-ingressgateway에 할당한 ip를 적어주세요

gateways-issuer.yaml를 적용합니다.

kubectl apply -f gateways-issuer.yaml

다음으로는 kubeflow-gateway의 설정에 밑의 부분을 추가합니다.

kubectl edit gateway/kubeflow-gateway -n kubeflow
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"networking.istio.io/v1alpha3","kind":"Gateway","metadata":{"annotations":{},"name":"k>
  creationTimestamp: "2022-01-05T08:43:55Z"
  generation: 6
  name: kubeflow-gateway
  namespace: kubeflow
  resourceVersion: "472376"
  uid: e1e5515c-9520-4b55-84a8-afe58df640e6
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 80
      protocol: HTTP
# 아래 부분을 추가해주세요
    tls:
      httpsRedirect: true
  - hosts:
    - '*'
    port:
      name: https
      number: 443
      protocol: HTTPS
    tls:
      credentialName: kubeflow-ingressgateway-certs
      mode: SIMPLE

kubeflow-gateway파일 수정후 https:192.168.35.100에 접속하면
Screenshot from 2022-01-08 01-09-45

위의 그림과 같이 https로 접속하는 것을 확인할 수 있습니다.

Screenshot from 2022-01-08 01-12-15

마지막으로 위의 그림과 같이 Could not find CSRF cookie XSRF-TOKEN in the request 이슈 없이 노트북을 만들 수 있습니다.

from mlops-for-all.github.io.

kosehy avatar kosehy commented on August 11, 2024 1

@kosehy 알려주신대로 아래와 같이 진행했습니다. ip addr | grep 192.168

실행 결과 inet 192.168.49.1/24 brd 192.168.49.255 scope global br-5edf5fa536d0

MetalLB IP설정에서 대역폭의 범위를 192.168.49.100-192.168.49.110로 수정 하였고 svc/istio-ingressgateway 의 loadBalancerIP 값으로 192.168.49.100 을 주었습니다

아래는 svc/istio-ingressgateway의 수정 전 후 정보입니다. 수정 전 스크린샷 2022-01-14 오전 9 56 08

수정 후 스크린샷 2022-01-14 오전 9 45 39

완료 후에 https://192.168.49.100 로 접속 시도하였지만 접속이 되지않습니다.(kubeflow-self-issuer 설정 후에도 마찬가지입니다..)

info k8s cluster : minikube v1.22.0

metallb_config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.49.100-192.168.49.110  # IP 대역폭

kubectl edit svc/istio-ingressgateway -n istio-system

spec:
  clusterIP: 10.106.77.97
  externalTrafficPolicy: Cluster
  loadBalancerIP: 192.168.49.100
  ports:
  - name: status-port
    nodePort: 30770
    port: 15021
    protocol: TCP
    targetPort: 15021
  - name: http2
    nodePort: 30199
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    nodePort: 30121
    port: 443
    protocol: TCP
    targetPort: 8443
  - name: tcp
    nodePort: 30896
    port: 31400
    protocol: TCP
    targetPort: 31400
  - name: tls
    nodePort: 30594
    port: 15443
    protocol: TCP
    targetPort: 15443
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 192.168.49.100

일단 저는 kubeadm으로 k8s를 설치해서 minikube 하고 차이가 날 수도 있습니다.
혹시 gateways-issuer.yaml 파일 적용 후에 kubeflow-gateway 파일도 수정을 하셨나요?

만약 kubeflow-gateway 파일을 수정 하셨으면

kubectl delete -f gateways-issuer.yaml

kubeflow-gateway 에서 추가한 코드부분을 삭제하시고

192.168.49.100

으로 kubeflow ui 에 접속 가능한지 확인해보세요 .
해결이 안되면 linkedin 여기로 문자보내주세요

from mlops-for-all.github.io.

Aiden-Jeon avatar Aiden-Jeon commented on August 11, 2024

안녕하세요!
찾아보니까 http와 관련된 이슈인 것 같습니다.
아래 내용처럼 kubeflow-gateway를 수정 후 다시 apply 해보시겠어요?
kubeflow/kubeflow#5803 (comment)

from mlops-for-all.github.io.

anencore94 avatar anencore94 commented on August 11, 2024

안녕하세요 문의주셔서 감사합니다!

구성하신 클러스터 환경의 다음 정보를 말씀해주시면 더 자세한 확인이 가능할 것 같습니다! 답변주시면 감사하겠습니다. @tjems6498

  1. 서버 정보(os, cloud or baremetal, ...)
  2. kubernetes 설치 방법 (kubeadm or k3s or minikube or ...)
  3. kubectl get pod -n istio-system 의 출력 결과
    • 1/1 Ready 가 아닌 pod 가 있다면 해당 pod 의 로그
  4. kubectl get pod -n dex 의 출력 결과
    • 1/1 Ready 가 아닌 pod 가 있다면 해당 pod 의 로그
  5. kubectl get pod -l component=kube-apiserver -n kube-system -o yaml 의 출력 결과
    • 조회되지 않는다면, kubectl get pod -n kube-system 이후, kube-apiserver-로 시작하는 pod 의 이름을 조회한 후, kubectl get pod <해당 pod의 이름> -n kube-system -o yaml 의 출력 결과

from mlops-for-all.github.io.

visionhong avatar visionhong commented on August 11, 2024

@kosehy MetallB를 통해 svc/istio-ingressgateway 의 Type을 LoadBalancer 로 변경하였고 EXTERNAL-IP는 예시랑 같은 IP인 192.168.35.100 으로 하였는데 https://192.168.35.100 으로 접속이 되질 않습니다.

제가 제대로 했다면 우분투 서버 IP와는 관계없이 EXTERNAL-IP인 192.168.35.100로 접속이 가능해야 하나요?

from mlops-for-all.github.io.

kosehy avatar kosehy commented on August 11, 2024

@kosehy MetallB를 통해 svc/istio-ingressgateway 의 Type을 LoadBalancer 로 변경하였고 EXTERNAL-IP는 예시랑 같은 IP인 192.168.35.100 으로 하였는데 https://192.168.35.100 으로 접속이 되질 않습니다.

제가 제대로 했다면 우분투 서버 IP와는 관계없이 EXTERNAL-IP인 192.168.35.100로 접속이 가능해야 하나요?

@tjems6498 일단

ip addr | grep 192.168

이 명령어를 치시면 나오는 우분투 서버 IP를 기반으로 MetalLB IP 설정 에 있는 IP 대역폭을 수정하시고 해당 IP 대역폭에있는 IP 주소를 사용하시면 됩니다.

예시로

ip addr | grep 192.168

결과가

inet 192.168.12.15/24 brd 192.168.12.255 scope global noprefixroute

로 나올 경우에는 MetalLB IP 설정 에 있는 IP 대역폭 설정시 사용가능한 IP address pool을 선택합니다. 여기서는 192.168.12.100 ~ 192.168.12.110 을 사용가능한 주소로 예를 들어서 설명하겠습니다.

MetalLB IP address pool 을

192.168.12.100 ~ 192.168.12.110 

으로 설정하신 다음에 여기에 있는 IP 주소 중 하나를 선택합니다. 이 예시에서는 192.168.12.100 을 예시로 들겠습니다.

192.168.12.100

을 svc/istio-ingressgateway 의 loadBalancerIP 값으로 넣으시고

kubeflow-self-issuer 설정 에 있는 ipAddresses: 에

192.168.12.100

을 추가하시면 https://192.168.12.100 으로 kubeflow ui에 접속이 가능합니다

from mlops-for-all.github.io.

visionhong avatar visionhong commented on August 11, 2024

@kosehy 알려주신대로 아래와 같이 진행했습니다.
ip addr | grep 192.168

실행 결과
inet 192.168.49.1/24 brd 192.168.49.255 scope global br-5edf5fa536d0

MetalLB IP설정에서 대역폭의 범위를 192.168.49.100-192.168.49.110로 수정 하였고 svc/istio-ingressgateway 의 loadBalancerIP 값으로 192.168.49.100 을 주었습니다

아래는 svc/istio-ingressgateway의 수정 전 후 정보입니다.
수정 전
스크린샷 2022-01-14 오전 9 56 08

수정 후
스크린샷 2022-01-14 오전 9 45 39

완료 후에 https://192.168.49.100 로 접속 시도하였지만 접속이 되지않습니다.(kubeflow-self-issuer 설정 후에도 마찬가지입니다..)

info
k8s cluster : minikube v1.22.0

metallb_config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.49.100-192.168.49.110  # IP 대역폭

kubectl edit svc/istio-ingressgateway -n istio-system

spec:
  clusterIP: 10.106.77.97
  externalTrafficPolicy: Cluster
  loadBalancerIP: 192.168.49.100
  ports:
  - name: status-port
    nodePort: 30770
    port: 15021
    protocol: TCP
    targetPort: 15021
  - name: http2
    nodePort: 30199
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    nodePort: 30121
    port: 443
    protocol: TCP
    targetPort: 8443
  - name: tcp
    nodePort: 30896
    port: 31400
    protocol: TCP
    targetPort: 31400
  - name: tls
    nodePort: 30594
    port: 15443
    protocol: TCP
    targetPort: 15443
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 192.168.49.100

from mlops-for-all.github.io.

dsyou20 avatar dsyou20 commented on August 11, 2024

저도 동일한 문제가 나타납니다.

  • gateways-issuer.yaml 을 만들고 kubeflow-gateway 수정 적용하기 전에는 UI가 외부 접속이 되었는데요
  • 이를 적용후에는 외부 접속이 안됩니다.
  • 이때, 추가한부분을 삭제하고 원복하여도 외부 접속이 안됩니다.
    (단, localhost에서는 접속이 됩니다.)

from mlops-for-all.github.io.

BenzhaminKim avatar BenzhaminKim commented on August 11, 2024

@dsyou20
해당 문제는 kubeflow/kubeflow#6395 에서 같은 방법으로도 해결할 수 있습니다.

from mlops-for-all.github.io.

gracepark0120 avatar gracepark0120 commented on August 11, 2024

@RyanKor

@tjems6498 이거 저도 같은 문제로 4일 동안 해맸는데, 방금 해결했습니다.

사실 올바른 해법이라고 보기는 어렵지만, http 접근 해용을 해주기 위해 manifest/apps/jupyter/jupyter-web-app/upstream/basedeployment.yaml 파일의 내용을 다음과 같이 수정했습니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment
spec:
  replicas: 1
  template:
    metadata:
      annotations:
        sidecar.istio.io/inject: "false"
    spec:
      containers:
      - name: jupyter-web-app
        image: public.ecr.aws/j1r0q0g6/notebooks/jupyter-web-app
        ports:
        - containerPort: 5000
        volumeMounts:
        - mountPath: /etc/config
          name: config-volume
        - mountPath: /src/apps/default/static/assets/logos
          name: logos-volume
        env:
        - name: APP_PREFIX
          value: $(JWA_PREFIX)
        - name: UI
          value: $(JWA_UI)
        - name: USERID_HEADER
          value: $(JWA_USERID_HEADER)
        - name: USERID_PREFIX
          value: $(JWA_USERID_PREFIX)
        - name: APP_SECURE_COOKIES # 새로이 추가한 부분
          value: "false" # 새로이 추가한 부분
      serviceAccountName: service-account
      volumes:
      - configMap:
          name: config
        name: config-volume
      - configMap:
          name: jupyter-web-app-logos
        name: logos-volume

위와 같이 deployment.yaml을 수정하고 manifest 폴더 경로에서 kustomize build apps/jupyter/jupyter-web-app/upstream/overlays/istio | kubectl apply -f -를 다시 수행하니, jupyter notebook이 생성되는 것을 볼 수 있었습니다.

manifest 레포에 APP_SECURE_COOKIES 설정 값이 없어서 왜 이 내용이 레포에 빠져 있나 했더니, https 설정이 기본이라 http 접근을 권장하지 않는 상황 때문에 설정이 안되어 있다고 하네요...

혹시 잘못된 설명이 있으면 말씀해주세요!

안녕하세요, 말씀하신 대로 수정 후
kustomize build apps/jupyter/jupyter-web-app/upstream/overlays/istio | kubectl apply -f -
하니 다음과 같은 에러가 뜹니다.

panic: runtime error: index out of range [12] with length 12 [recovered]
        panic: runtime error: index out of range [12] with length 12

goroutine 1 [running]:
gopkg.in/yaml%2ev3.handleErr(0xc000ca38f0)
        /go/pkg/mod/gopkg.in/[email protected]/yaml.go:276 +0x85
panic(0xbedf00, 0xc001c03140)
        /usr/local/go/src/runtime/panic.go:969 +0x1b9
gopkg.in/yaml%2ev3.write(0xc000683500, 0xc002c6e0c0, 0xc, 0x10, 0xc000c9ed90, 0x829c01)
        /go/pkg/mod/gopkg.in/[email protected]/emitterc.go:90 +0x245
gopkg.in/yaml%2ev3.yaml_emitter_write_comment(0xc000683500, 0xc002c6e0c0, 0xc, 0x10, 0x1)
        /go/pkg/mod/gopkg.in/[email protected]/emitterc.go:1978 +0x1ae
gopkg.in/yaml%2ev3.yaml_emitter_process_line_comment(0xc000683500, 0xc000cab5f0)
        /go/pkg/mod/gopkg.in/[email protected]/emitterc.go:1128 +0x6a
gopkg.in/yaml%2ev3.yaml_emitter_emit_block_mapping_value(0xc000683500, 0xc000cab5f0, 0x418801, 0x1)
        /go/pkg/mod/gopkg.in/[email protected]/emitterc.go:817 +0xec
gopkg.in/yaml%2ev3.yaml_emitter_state_machine(0xc000683500, 0xc000cab5f0, 0x127d201)
        /go/pkg/mod/gopkg.in/[email protected]/emitterc.go:303 +0x445
gopkg.in/yaml%2ev3.yaml_emitter_emit(0xc000683500, 0xc000683740, 0xc002c6e0d0)
        /go/pkg/mod/gopkg.in/[email protected]/emitterc.go:153 +0x14f
gopkg.in/yaml%2ev3.(*encoder).emit(0xc000683500)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:81 +0x39
gopkg.in/yaml%2ev3.(*encoder).emitScalar(0xc000683500, 0xc001e377a0, 0x5, 0x0, 0x0, 0x0, 0x0, 0xc001990f02, 0x1285808, 0x0, ...)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:417 +0x31a
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0030d19a0, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:559 +0x136f
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0030d17c0, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:508 +0xb25
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0030d0aa0, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:478 +0x5fc
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0002f5c20, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:512 +0xa6f
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0002f5ae0, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:478 +0x5fc
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0002f5860, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:512 +0xa6f
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0001c7220, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:512 +0xa6f
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0006adf40, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:512 +0xa6f
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0006ad900, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:512 +0xa6f
gopkg.in/yaml%2ev3.(*encoder).node(0xc000683500, 0xc0006ad7c0, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:463 +0x245
gopkg.in/yaml%2ev3.(*encoder).nodev(0xc000683500, 0xbb3a00, 0xc0006ad7c0, 0x16)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:421 +0x79
gopkg.in/yaml%2ev3.(*encoder).marshalDoc(0xc000683500, 0x0, 0x0, 0xbb3a00, 0xc0006ad7c0, 0x16)
        /go/pkg/mod/gopkg.in/[email protected]/encode.go:101 +0x23a
gopkg.in/yaml%2ev3.(*Encoder).Encode(0xc00000e7f8, 0xbb3a00, 0xc0006ad7c0, 0x0, 0x0)
        /go/pkg/mod/gopkg.in/[email protected]/yaml.go:251 +0xea
sigs.k8s.io/kustomize/kyaml/yaml.String(0xc0006ad7c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /go/pkg/mod/sigs.k8s.io/kustomize/[email protected]/yaml/types.go:215 +0x1b3
sigs.k8s.io/kustomize/kyaml/yaml.(*RNode).String(...)
        /go/pkg/mod/sigs.k8s.io/kustomize/[email protected]/yaml/rnode.go:468
sigs.k8s.io/kustomize/kyaml/yaml.(*RNode).MarshalJSON(0xc002f26b40, 0x200, 0x0, 0x0, 0x0, 0xc001990230)
        /go/pkg/mod/sigs.k8s.io/kustomize/[email protected]/yaml/rnode.go:674 +0x37a
sigs.k8s.io/kustomize/api/internal/wrappy.(*WNode).MarshalJSON(0xc000102828, 0x17c, 0x180, 0x502ab9, 0xc000ba8067, 0xc000346600)
        /go/pkg/mod/sigs.k8s.io/kustomize/[email protected]/internal/wrappy/wnode.go:219 +0x2e
sigs.k8s.io/kustomize/api/resource.(*Resource).MarshalJSON(...)
        /go/pkg/mod/sigs.k8s.io/kustomize/[email protected]/resource/resource.go:106
sigs.k8s.io/kustomize/api/resource.(*Resource).AsYAML(0xc000076f00, 0xc000346600, 0x174, 0x200, 0x174, 0x0)
        /go/pkg/mod/sigs.k8s.io/kustomize/[email protected]/resource/resource.go:359 +0x38
sigs.k8s.io/kustomize/api/resmap.(*resWrangler).AsYaml(0xc0003916a0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /go/pkg/mod/sigs.k8s.io/kustomize/[email protected]/resmap/reswrangler.go:273 +0x10c
sigs.k8s.io/kustomize/kustomize/v3/commands/build.(*Options).emitResources(0xc0004307e0, 0xd2f000, 0xc000102008, 0xd4eac0, 0x1285808, 0xd52560, 0xc0003916a0, 0xc0002d5880, 0xc0000bdd98)
        /workspace/myClone/kustomize/commands/build/build.go:160 +0x4e
sigs.k8s.io/kustomize/kustomize/v3/commands/build.(*Options).RunBuild(0xc0004307e0, 0xd2f000, 0xc000102008, 0x1, 0x0)
        /workspace/myClone/kustomize/commands/build/build.go:152 +0x135
sigs.k8s.io/kustomize/kustomize/v3/commands/build.NewCmdBuild.func1(0xc000450000, 0xc0003b8ee0, 0x1, 0x1, 0x0, 0x0)
        /workspace/myClone/kustomize/commands/build/build.go:70 +0xad
github.com/spf13/cobra.(*Command).execute(0xc000450000, 0xc0003b8eb0, 0x1, 0x1, 0xc000450000, 0xc0003b8eb0)
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:842 +0x47c
github.com/spf13/cobra.(*Command).ExecuteC(0xc00015f8c0, 0x0, 0xb3aa40, 0xc000078058)
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:950 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:887
main.main()
        /workspace/myClone/kustomize/main.go:14 +0x2a
error: no objects passed to apply


다음처럼 직접 apply 하면

kubectl apply -f apps/jupyter/jupyter-web-app/upstream/base/deployment.yaml
error: error validating "apps/jupyter/jupyter-web-app/upstream/base/deployment.yaml": error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec; if you choose to ignore these errors, turn validation off with --validate=false

이번에는 위와 같은 오류가 납니다..

혹시 원인과 해결법 아신다면 도와주시면 감사하겠습니다.!!

from mlops-for-all.github.io.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.