Kuberenetes POD not coming

1/20/2018

I am trying to install Jhipster Registry on Kubernetes as stateful set with the given (git as jhipster-registry.yml).

I see the services & statefulset coming up. I dont see the worker PODs :-(

Could you share, how to get the worker PODs up .

Update:

I am totally new to this jhipster & kubernetes. Thx for your response. Pasted the jhipster-register.yml below.
Cmds i have tried is to kubectl create -f jhipster-register.yml.

Error @ kubectl describe statefulset

  Volumes:
   config-volume:
    Type:   ConfigMap (a volume populated by a ConfigMap)
    Name:   application-config
    Optional:   false
Volume Claims:  <none>
Events:
  FirstSeen LastSeen    Count   From        SubObjectPath   Type        Reason      Message
  --------- --------    -----   ----        -------------   --------    ------      -------
  1d        5s      4599    statefulset         Warning     FailedCreate    create Pod jhipster-registry-0 in StatefulSet jhipster-registry failed error: Pod "jhipster-registry-0" is invalid: spec.containers[0].env[8].name: Invalid value: "JHIPSTER_LOGGING_LOGSTASH_ENABLED=true": a valid C identifier must start with alphabetic character or '_', followed by a string of alphanumeric characters or '_' (e.g. 'my_name',  or 'MY_NAME',  or 'MyName', regex used for validation is '[A-Za-z_][A-Za-z0-9_]*')

YML:

apiVersion: v1
kind: Service
metadata:
  name: jhipster-registry
  labels:
    app: jhipster-registry
  annotations:
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
  ports:
  - port: 9761
  clusterIP: None
  selector:
    app: jhipster-registry
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: jhipster-registry
spec:
  serviceName: jhipster-registry
  replicas: 2
  template:
    metadata:
      labels:
        app: jhipster-registry
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: jhipster-registry
        image: jhipster/jhipster-registry:v3.2.3
        ports:
        - containerPort: 9761
        env:
        - name: CLUSTER_SIZE
          value: "2"
        - name: STATEFULSET_NAME
          value: "jhipster-registry"
        - name: STATEFULSET_NAMESPACE
          value: "stage"
        - name: SPRING_PROFILES_ACTIVE
          value: prod,swagger,native
        - name: SECURITY_USER_PASSWORD
          value: admin
        - name: JHIPSTER_SECURITY_AUTHENTICATION_JWT_SECRET
          value: secret-is-nothing-its-just-inside-you
        - name: EUREKA_CLIENT_FETCH_REGISTRY
          value: 'true'
        - name: EUREKA_CLIENT_REGISTER_WITH_EUREKA
          value: 'true'
        - name: JHIPSTER_LOGGING_LOGSTASH_ENABLED=true
          value: 'true'
        - name: GIT_URI
          value: https://github.com/jhipster/jhipster-registry/
        - name: GIT_SEARCH_PATHS
          value: central-config
        command:
          - "/bin/sh"
          - "-ec"
          - |
            HOSTNAME=$(hostname)
            export EUREKA_INSTANCE_HOSTNAME="${HOSTNAME}.jhipster-registry.${STATEFULSET_NAMESPACE}.svc.cluster.local"
            echo "Setting EUREKA_INSTANCE_HOSTNAME=${EUREKA_INSTANCE_HOSTNAME}"
            echo "Configuring Registry Replicas for CLUSTER_SIZE=${CLUSTER_SIZE}"

            LAST_POD_INDEX=$((${CLUSTER_SIZE} - 1))
            REPLICAS=""
            for i in $(seq 0 $LAST_POD_INDEX); do
              REPLICAS="${REPLICAS}http://admin:${SECURITY_USER_PASSWORD}@${STATEFULSET_NAME}-${i}.jhipster-registry.${STATEFULSET_NAMESPACE}.svc.cluster.local:8761/eureka/"
              if [ $i -lt $LAST_POD_INDEX ]; then
                REPLICAS="${REPLICAS},"
              fi
            done
            export EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=$REPLICAS
            echo "EUREKA_CLIENT_SERVICE_URL_DEFAULTZONE=${REPLICAS}"

            java -jar /jhipster-registry.war --spring.cloud.config.server.git.uri=${GIT_URI} --spring.cloud.config.server.git.search-paths=${GIT_SEARCH_PATHS} -Djava.security.egd=file:/dev/./urandom
        volumeMounts:
        - name: config-volume
          mountPath: /central-config
      volumes:
      - name: config-volume
        configMap:
          name: application-config
-- Anand N S
jhipster
kubernetes

1 Answer

2/3/2018

Your StatefulSet is invalid because of invalid ENV name.

    - name: JHIPSTER_LOGGING_LOGSTASH_ENABLED=true
      value: 'true'

You have used ENV name JHIPSTER_LOGGING_LOGSTASH_ENABLED=true which is invalid.

Correct format: [A-Za-z_][A-Za-z0-9_]*

Thats why Pods are not coming

Change StatefulSet to use as

    - name: JHIPSTER_LOGGING_LOGSTASH_ENABLED
      value: 'true'

This will work.

-- Mir Shahriar Sabuj
Source: StackOverflow