0

我正在使用这个部署模板(这就是它的名字吗?)。两个 pod 正在运行,但有两个停留在容器创建中。如果我扩展到 2 个副本,则 1 个正在运行,1 个卡在容器创建中。如何让所有 4 个 pod 都运行?

此声明在 AWS 中创建一个 PV 并附加 pvc。数据是持久的。但无法解决容器创建问题。

$ kubectl get pods
NAME                                   READY   STATUS              RESTARTS   AGE
activemq-deployment-58cc677d85-497xt   1/1     Running             0          2m
activemq-deployment-58cc677d85-b4tpx   0/1     ContainerCreating   0          1m
activemq-deployment-58cc677d85-hprpv   1/1     Running             0          1m
activemq-deployment-58cc677d85-vdtcs   0/1     ContainerCreating   0          1m

描述给出了这个:

$ kubectl describe deployments activemq-deployment
Name:                   activemq-deployment
Namespace:              default
CreationTimestamp:      Wed, 27 Feb 2019 21:49:11 -0800
Labels:                 app=activemq
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=activemq
Replicas:               4 desired | 4 updated | 4 total | 2 available | 2 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=activemq
  Containers:
   activemq:
    Image:        activemq:1.0
    Port:         8161/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:
      /opt/apache-activemq-5.15.6/data from activemq-data (rw)
  Volumes:
   activemq-data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  amq-pv-claim
    ReadOnly:   false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Progressing    True    NewReplicaSetAvailable
  Available      False   MinimumReplicasUnavailable
OldReplicaSets:  <none>
NewReplicaSet:   activemq-deployment-58cc677d85 (4/4 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  3m8s  deployment-controller  Scaled up replica set activemq-deployment-58cc677d85 to 1
  Normal  ScalingReplicaSet  103s  deployment-controller  Scaled up replica set activemq-deployment-58cc677d85 to 4

宣言:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: activemq-deployment
  labels:
    app: activemq
spec:
  replicas: 1
  selector:
    matchLabels:
      app: activemq
  template:
    metadata:
      labels:
        app: activemq
    spec:
      securityContext:
        fsGroup: 2000
      containers:
      - name: activemq
        image: activemq:1.0
        ports:
        - containerPort: 8161
        volumeMounts:
        - name: activemq-data
          mountPath: /opt/apache-activemq-5.15.6/data
          readOnly: false
      volumes:
      - name: activemq-data
        persistentVolumeClaim:
          claimName: amq-pv-claim

---
apiVersion: v1
kind: Service
metadata:
  name: amq-nodeport-service
spec:
  selector:
    app: activemq
  ports:
  - port: 8161
    targetPort: 8161
  type: NodePort
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: amq-pv-claim
spec:
  #storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
4

1 回答 1

0

使用 StatefulSets 来持久化容器的状态。不建议使用部署来运行有状态容器

于 2019-02-28T18:50:46.493 回答