2017-11-17 25 views
0

k8s에 대해 ingress controller을 만들고 싶습니다. nginx 입력 샘플을 사용하십시오. 만든 후 그 다음 쇼 K8SKubernetes에서 Nginx 용 ReplicationController를 만들 수 없습니다.

https://github.com/kubernetes/contrib/blob/master/ingress/controllers/nginx/examples/proxy-protocol/nginx-rc.yaml

apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: nginx-ingress-controller 
    labels: 
    k8s-app: nginx-ingress-lb 
spec: 
    replicas: 1 
    selector: 
    k8s-app: nginx-ingress-lb 
    template: 
    metadata: 
     labels: 
     k8s-app: nginx-ingress-lb 
     name: nginx-ingress-lb 
    spec: 
     terminationGracePeriodSeconds: 60 
     containers: 
     - image: gcr.io/google_containers/nginx-ingress-controller:0.8.3 
     name: nginx-ingress-lb 
     imagePullPolicy: Always 
     readinessProbe: 
      httpGet: 
      path: /healthz 
      port: 10254 
      scheme: HTTP 
     livenessProbe: 
      httpGet: 
      path: /healthz 
      port: 10254 
      scheme: HTTP 
      initialDelaySeconds: 10 
      timeoutSeconds: 1 
     # use downward API 
     env: 
      - name: POD_NAME 
      valueFrom: 
       fieldRef: 
       fieldPath: metadata.name 
      - name: POD_NAMESPACE 
      valueFrom: 
       fieldRef: 
       fieldPath: metadata.namespace 
     ports: 
     - containerPort: 80 
     - containerPort: 443 
     args: 
     - /nginx-ingress-controller 
     - --default-backend-service=$(POD_NAMESPACE)/default-http-backend 
     - --nginx-configmap=$(POD_NAMESPACE)/nginx-ingress-controller 

: 콘솔에서

enter image description here

확인 :

$ kubectl describe pod nginx-ingress-controller-5wxch 
Name:   nginx-ingress-controller-5wxch 
Namespace:  default 
Node:   minikube/192.168.99.100 
Start Time:  Fri, 17 Nov 2017 15:50:33 +0900 
Labels:   k8s-app=nginx-ingress-lb 
       name=nginx-ingress-lb 
Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicationController","namespace":"default","name":"nginx-ingress-controller","uid":"9c1aba15-cb63-11e7-9... 
Status:   Running 
IP:    172.17.0.15 
Created By:  ReplicationController/nginx-ingress-controller 
Controlled By: ReplicationController/nginx-ingress-controller 
Containers: 
    nginx-ingress-lb: 
    Container ID: docker://9fabc8d7f74b442c35ac5f443e7f35117b183e61aa37851dfdb5847d90252672 
    Image:   gcr.io/google_containers/nginx-ingress-controller:0.8.3 
    Image ID:  docker-pullable://gcr.io/google_containers/[email protected]:820c338dc22eda7ab6331001da3cccd43b1b7dcd179049d33a62ad6deaef8daf 
    Ports:   80/TCP, 443/TCP 
    Args: 
     /nginx-ingress-controller 
     --default-backend-service=$(POD_NAMESPACE)/default-http-backend 
     --nginx-configmap=$(POD_NAMESPACE)/nginx-ingress-controller 
    State:   Waiting 
     Reason:  CrashLoopBackOff 
    Last State:  Terminated 
     Reason:  Error 
     Exit Code: 255 
     Started:  Fri, 17 Nov 2017 15:52:43 +0900 
     Finished:  Fri, 17 Nov 2017 15:52:43 +0900 
    Ready:   False 
    Restart Count: 4 
    Liveness:  http-get http://:10254/healthz delay=10s timeout=1s period=10s #success=1 #failure=3 
    Readiness:  http-get http://:10254/healthz delay=0s timeout=1s period=10s #success=1 #failure=3 
    Environment: 
     POD_NAME:  nginx-ingress-controller-5wxch (v1:metadata.name) 
     POD_NAMESPACE: default (v1:metadata.namespace) 
    Mounts: 
     /var/run/secrets/kubernetes.io/serviceaccount from default-token-0nlh9 (ro) 
Conditions: 
    Type   Status 
    Initialized True 
    Ready   False 
    PodScheduled True 
Volumes: 
    default-token-0nlh9: 
    Type:  Secret (a volume populated by a Secret) 
    SecretName: default-token-0nlh9 
    Optional: false 
QoS Class:  BestEffort 
Node-Selectors: <none> 
Tolerations:  <none> 
Events: 
    Type  Reason     Age    From    Message 
    ----  ------     ----    ----    ------- 
    Normal Scheduled    3m    default-scheduler Successfully assigned nginx-ingress-controller-5wxch to minikube 
    Normal SuccessfulMountVolume 3m    kubelet, minikube MountVolume.SetUp succeeded for volume "default-token-0nlh9" 
    Warning Unhealthy    2m    kubelet, minikube Readiness probe failed: Get http://172.17.0.15:10254/healthz: dial tcp 172.17.0.15:10254: getsockopt: connection refused 
    Normal Pulling    1m (x5 over 3m) kubelet, minikube pulling image "gcr.io/google_containers/nginx-ingress-controller:0.8.3" 
    Normal Pulled     1m (x5 over 2m) kubelet, minikube Successfully pulled image "gcr.io/google_containers/nginx-ingress-controller:0.8.3" 
    Normal Created    1m (x5 over 2m) kubelet, minikube Created container 
    Normal Started    1m (x5 over 2m) kubelet, minikube Started container 
    Warning BackOff    0s (x17 over 2m) kubelet, minikube Back-off restarting failed container 
    Warning FailedSync    0s (x17 over 2m) kubelet, minikube Error syncing pod 

nginx-rc.yaml 파일을 만든 따라

Mac에서 minikube를 사용 중입니다. kubernetes 버전은 다음과 같습니다.

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.2", GitCommit:"bdaeafa71f6c7c04636251031f93464384d54963", GitTreeState:"clean", BuildDate:"2017-10-24T19:48:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"} 
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.5", GitCommit:"17d7182a7ccbb167074be7a87f0a68bd00d58d97", GitTreeState:"clean", BuildDate:"2017-10-06T20:53:14Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"} 

그 이유는 무엇입니까? 이 버전은 설정 파일을 지원하지 않습니까, 아니면 설정 파일이 오래 되었습니까?

답변

1

kubectl describe pod xxx으로 정보를 얻을 수 있습니다. kubectl get pod xxx -o yaml (자세한 내용은 클러스터가 pod에 대해 알고있는 모든 것을 제공합니다)에 대한 자세한 정보를 참조하십시오. 그리고 마지막으로 포드의 로그를 kubect logs xxx으로 확인하십시오.

내가 매니페스트 YAML 파일을 재생

, kubectl get pod xxx 쇼 : 그래서 당신이 갈 kubectl logs nginx-ingress-controller-test-4mgw7
I1117 08:44:11.650301 1 main.go:94] Using build: https://github.com/bprashanth/contrib.git - git-92b2bac F1117 08:44:11.703533 1 main.go:121] no service with name default/default-http-backend found: services "default-http-backend" not found

, 당신은 백엔드 서비스를 놓치고있어.

팁 : 진입의 nginx의 controler를 설치하는 쉬운 방법이 될 수있다 : helm install ing-nginx-ctrl stable/nginx-ingress

는 대한 지배 차트있다.

+0

재현 해 주셔서 대단히 감사합니다. 조타 장치는 사용하기 쉽습니다. – online