2016-10-02 5 views
0

Ich Kubernetes Lernen und kam gerade über ein Thema und möchten sonst überprüfen, ob jemand über sie gekommen ist,kubernetes verstecktes Replikat gesetzt?

[email protected]:~/rc$ kubectl get rs ### don’t see any replica set 
[email protected]:~/rc$ 
[email protected]:~/rc$ 
[email protected]:~/rc$ kubectl get pod 
NAME    READY  STATUS RESTARTS AGE 
bigwebstuff-673k9 1/1  Running 0   7m 
bigwebstuff-cs7i3 1/1  Running 0   7m 
bigwebstuff-egbqd 1/1  Running 0   7m 
[email protected]:~/rc$ 
[email protected]:~/rc$ 
[email protected]:~/rc$ kubectl delete pod bigwebstuff-673k9 bigwebstuff-cs7i3 #### delete pods 
pod "bigwebstuff-673k9" deleted 
pod "bigwebstuff-cs7i3" deleted 
[email protected]:~/rc$ 
[email protected]:~/rc$ kubectl get pod #### the deleted pods regenerated 
NAME    READY  STATUS RESTARTS AGE 
bigwebstuff-910m9 1/1  Running 0   6s 
bigwebstuff-egbqd 1/1  Running 0   8m 
bigwebstuff-fksf6 1/1  Running 0   6s 

Sie sehen die gelöschten Schoten werden regeneriert, obwohl ich nicht die Replikat-Gruppe finden , als ob irgendwo ein versteckter Replikatsatz existiert.

Die drei Schoten von rc.yaml Datei gestartet werden, wie folgt,

[email protected]:~/rc$ cat webrc.yaml 
apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: bigwebstuff 
    labels: 
    name: bigwebstuff 
spec: 
    replicas: 3 
    selector: 
    run: testweb 
    template: 
    metadata: 
     labels: 
     run: testweb 
    spec: 
     containers: 
     - name: podweb 
     image: nginx 
     ports: 
     - containerPort: 80 

Aber es zeigte sich nicht, nachdem ich die Yams-Datei verwenden, um die Schoten zu erstellen.

Haben Sie eine Idee, wie Sie das versteckte Replikat finden? Oder warum die Pods regeneriert werden?

Antwort

3

Ein "ReplicaSet" ist nicht dasselbe wie ein "ReplicationController" (obwohl sie ähnlich sind). Der Befehl kubectl get rs listet Replikatsätze auf, während die Manifestdatei in Ihrer Frage einen Replikationscontroller erstellt. Verwenden Sie stattdessen den Befehl kubectl get rc, um Replikationscontroller aufzulisten (oder ändern Sie alternativ Ihre Manifestdatei, um ein ReplicaSet anstelle eines ReplicationController zu erstellen).


Auf dem Unterschied zwischen ReplicaSets und ReplicationControllers, lassen Sie mich die documentation zitieren:

Replica Set ist die nächste Generation der Replication-Controller. Der einzige Unterschied zwischen einem Replikat-Set und einem Replikations-Controller ist jetzt die Selektor-Unterstützung. Replica Set unterstützt die neuen Set-basierten Selektoranforderungen, wie im Benutzerhand- buch beschrieben, während ein Replication Controller nur auf Gleichheit basierende Selektoranforderungen unterstützt.

2

Replikatsätze und Replikationscontroller sind nicht identisch. Versuchen Sie Folgendes:

kubectl get rc 

Und dann löschen Sie entsprechend.