如何使用现有PVC来安装stable/jenkins

如何使用现有PVC来安装stable/jenkins,jenkins,kubernetes,kubernetes-helm,kubernetes-pvc,Jenkins,Kubernetes,Kubernetes Helm,Kubernetes Pvc,我被詹金斯的头盔卡住了 :( 请帮忙 我通过以下方式预定义了一个存储类: $ kubectl apply -f generic-storage-class.yaml 使用generic-storage-class.yaml: kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: generic provisioner: kubernetes.io/aws-ebs parameters: type: gp2

我被詹金斯的头盔卡住了

:(

请帮忙

我通过以下方式预定义了一个存储类:

$ kubectl apply -f generic-storage-class.yaml 
使用generic-storage-class.yaml:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: generic
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  zones: us-east-1a, us-east-1b, us-east-1c
  fsType: ext4
然后我定义了PVC通孔:

$ kubectl apply -f jenkins-pvc.yaml
使用jenkins-pvc.yaml:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-pvc
  namespace: jenkins-project
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
然后我可以看到PVC进入绑定状态:

$ kubectl get pvc --all-namespaces
NAMESPACE         NAME               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
jenkins-project   jenkins-pvc        Bound    pvc-a173294f-7cea-11e9-a90f-161c7e8a0754   20Gi       RWO            gp2            27m
但当我试图通过以下方式掌舵jenkins时:

$ helm install --name jenkins \
--set persistence.existingClaim=jenkins-pvc \
stable/jenkins --namespace jenkins-project
我得到这个输出:

NAME:   jenkins
LAST DEPLOYED: Wed May 22 17:07:44 2019
NAMESPACE: jenkins-project
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME           DATA  AGE
jenkins        5     0s
jenkins-tests  1     0s

==> v1/Deployment
NAME     READY  UP-TO-DATE  AVAILABLE  AGE
jenkins  0/1    1           0          0s

==> v1/PersistentVolumeClaim
NAME     STATUS   VOLUME  CAPACITY  ACCESS MODES  STORAGECLASS  AGE
jenkins  Pending  gp2     0s

==> v1/Pod(related)
NAME                      READY  STATUS   RESTARTS  AGE
jenkins-6c9f9f5478-czdbh  0/1    Pending  0         0s

==> v1/Secret
NAME     TYPE    DATA  AGE
jenkins  Opaque  2     0s

==> v1/Service
NAME           TYPE          CLUSTER-IP      EXTERNAL-IP  PORT(S)         AGE
jenkins        LoadBalancer  10.100.200.27   <pending>    8080:31157/TCP  0s
jenkins-agent  ClusterIP     10.100.221.179  <none>       50000/TCP       0s


NOTES:
1. Get your 'admin' user password by running:
  printf $(kubectl get secret --namespace jenkins-project jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo
2. Get the Jenkins URL to visit by running these commands in the same shell:
  NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        You can watch the status of by running 'kubectl get svc --namespace jenkins-project -w jenkins'
  export SERVICE_IP=$(kubectl get svc --namespace jenkins-project jenkins --template "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}")
  echo http://$SERVICE_IP:8080/login

3. Login with the password from step 1 and the username: admin


For more information on running Jenkins on Kubernetes, visit:
https://cloud.google.com/solutions/jenkins-on-container-engine
事实上,它只是制造了自己的PVC,而不是使用预先制作的PVC

kubectl get pvc --all-namespaces
NAMESPACE         NAME               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
jenkins-project   jenkins            Bound    pvc-a9caa3ba-7cf1-11e9-a90f-161c7e8a0754   8Gi        RWO            gp2            6m11s
jenkins-project   jenkins-pvc        Bound    pvc-a173294f-7cea-11e9-a90f-161c7e8a0754   20Gi       RWO            gp2            56m

我觉得我很接近,但缺少了一些基本的东西。有什么想法吗?

所以根据Matthew L Daniel的评论,我运行了
helm repo update
,然后重新运行了helm install命令。这次它没有重新创建PVC,而是使用了预先制作的PVC

我以前的jenkins图表版本是“jenkins-0.35.0”

对于想知道部署是什么样子的人:

Name:               jenkins
Namespace:          jenkins-project
CreationTimestamp:  Wed, 22 May 2019 22:03:33 -0700
Labels:             app.kubernetes.io/component=jenkins-master
                    app.kubernetes.io/instance=jenkins
                    app.kubernetes.io/managed-by=Tiller
                    app.kubernetes.io/name=jenkins
                    helm.sh/chart=jenkins-1.1.21
Annotations:        deployment.kubernetes.io/revision: 1
Selector:           app.kubernetes.io/component=jenkins-master,app.kubernetes.io/instance=jenkins
Replicas:           1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType:       Recreate
MinReadySeconds:    0
Pod Template:
  Labels:           app.kubernetes.io/component=jenkins-master
                    app.kubernetes.io/instance=jenkins
                    app.kubernetes.io/managed-by=Tiller
                    app.kubernetes.io/name=jenkins
                    helm.sh/chart=jenkins-1.1.21
  Annotations:      checksum/config: 867177d7ed5c3002201650b63dad00de7eb1e45a6622e543b80fae1f674a99cb
  Service Account:  jenkins
  Init Containers:
   copy-default-config:
    Image:      jenkins/jenkins:lts
    Port:       <none>
    Host Port:  <none>
    Command:
      sh
      /var/jenkins_config/apply_config.sh
    Limits:
      cpu:     2
      memory:  4Gi
    Requests:
      cpu:     50m
      memory:  256Mi
    Environment:
      ADMIN_PASSWORD:  <set to the key 'jenkins-admin-password' in secret 'jenkins'>  Optional: false
      ADMIN_USER:      <set to the key 'jenkins-admin-user' in secret 'jenkins'>      Optional: false
    Mounts:
      /tmp from tmp (rw)
      /usr/share/jenkins/ref/plugins from plugins (rw)
      /usr/share/jenkins/ref/secrets/ from secrets-dir (rw)
      /var/jenkins_config from jenkins-config (rw)
      /var/jenkins_home from jenkins-home (rw)
      /var/jenkins_plugins from plugin-dir (rw)
  Containers:
   jenkins:
    Image:       jenkins/jenkins:lts
    Ports:       8080/TCP, 50000/TCP
    Host Ports:  0/TCP, 0/TCP
    Args:
      --argumentsRealm.passwd.$(ADMIN_USER)=$(ADMIN_PASSWORD)
      --argumentsRealm.roles.$(ADMIN_USER)=admin
    Limits:
      cpu:     2
      memory:  4Gi
    Requests:
      cpu:      50m
      memory:   256Mi
    Liveness:   http-get http://:http/login delay=90s timeout=5s period=10s #success=1 #failure=5
    Readiness:  http-get http://:http/login delay=60s timeout=5s period=10s #success=1 #failure=3
    Environment:
      JAVA_OPTS:
      JENKINS_OPTS:
      JENKINS_SLAVE_AGENT_PORT:  50000
      ADMIN_PASSWORD:            <set to the key 'jenkins-admin-password' in secret 'jenkins'>  Optional: false
      ADMIN_USER:                <set to the key 'jenkins-admin-user' in secret 'jenkins'>      Optional: false
    Mounts:
      /tmp from tmp (rw)
      /usr/share/jenkins/ref/plugins/ from plugin-dir (rw)
      /usr/share/jenkins/ref/secrets/ from secrets-dir (rw)
      /var/jenkins_config from jenkins-config (ro)
      /var/jenkins_home from jenkins-home (rw)
  Volumes:
   plugins:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   tmp:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   jenkins-config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      jenkins
    Optional:  false
   plugin-dir:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   secrets-dir:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   jenkins-home:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  jenkins-pvc
    ReadOnly:   false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      False   MinimumReplicasUnavailable
  Progressing    True    ReplicaSetUpdated
OldReplicaSets:  jenkins-86dcf94679 (1/1 replicas created)
NewReplicaSet:   <none>
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  42s   deployment-controller  Scaled up replica set jenkins-86dcf94679 to 1
姓名:詹金斯
名称空间:jenkins项目
CreationTimestamp:2019年5月22日星期三22:03:33-0700
标签:app.kubernetes.io/component=jenkins master
app.kubernetes.io/instance=jenkins
app.kubernetes.io/managed by=Tiller
app.kubernetes.io/name=jenkins
舵手sh/chart=jenkins-1.1.21
注释:deployment.kubernetes.io/revision:1
选择器:app.kubernetes.io/component=jenkins master,app.kubernetes.io/instance=jenkins
副本:1个需要的副本| 1个更新的副本| 1个总数| 0个可用副本| 1个不可用副本
策略类型:重新创建
最小就绪秒:0
Pod模板:
标签:app.kubernetes.io/component=jenkins master
app.kubernetes.io/instance=jenkins
app.kubernetes.io/managed by=Tiller
app.kubernetes.io/name=jenkins
舵手sh/chart=jenkins-1.1.21
注释:校验和/配置:867177D7ED5C3002201650B63DAD0DE7EB1E45A6622E543B80FAE1F674A99CB
服务帐户:詹金斯
初始化容器:
复制默认配置:
图片:詹金斯/詹金斯:lts
端口:
主机端口:
命令:
嘘
/var/jenkins\u config/apply\u config.sh
限制:
中央处理器:2
内存:4Gi
请求:
中央处理器:50米
内存:256Mi
环境:
管理员密码:可选:false
管理员用户:可选:false
挂载:
/来自tmp(rw)的tmp
/usr/share/jenkins/ref/plugins from plugins(rw)
/usr/share/jenkins/ref/secrets/from secrets dir(rw)
/变量/jenkins_配置来自jenkins配置(rw)
/var/jenkins_home,来自jenkins home(rw)
/来自插件目录(rw)的var/jenkins_插件
容器:
詹金斯:
图片:詹金斯/詹金斯:lts
端口:8080/TCP、50000/TCP
主机端口:0/TCP,0/TCP
Args:
--argumentsRealm.passwd.$(管理员用户)=$(管理员密码)
--argumentsRealm.roles.$(管理员用户)=管理员
限制:
中央处理器:2
内存:4Gi
请求:
中央处理器:50米
内存:256Mi
活跃度:http get http://:http/login delay=90s超时=5s周期=10s#成功=1#失败=5
准备就绪:http get http://:http/login delay=60s超时=5s周期=10s#成功=1#失败=3
环境:
JAVA_选项:
詹金斯选择:
詹金斯·奴隶·代理·港口:50000
管理员密码:可选:false
管理员用户:可选:false
挂载:
/来自tmp(rw)的tmp
/usr/share/jenkins/ref/plugins/from plugin dir(rw)
/usr/share/jenkins/ref/secrets/from secrets dir(rw)
/变量/jenkins_配置来自jenkins配置(ro)
/var/jenkins_home,来自jenkins home(rw)
卷数:
插件:
类型:EmptyDir(共享pod生存期的临时目录)
中等:
SizeLimit:
tmp:
类型:EmptyDir(共享pod生存期的临时目录)
中等:
SizeLimit:
詹金斯配置:
类型:ConfigMap(由ConfigMap填充的卷)
姓名:詹金斯
可选:false
插件目录:
类型:EmptyDir(共享pod生存期的临时目录)
中等:
SizeLimit:
机密处处长:
类型:EmptyDir(共享pod生存期的临时目录)
中等:
SizeLimit:
詹金斯之家:
类型:PersistentVolumeClaim(对同一命名空间中PersistentVolumeClaim的引用)
索赔名称:jenkins pvc
只读:false
条件:
类型状态原因
----           ------  ------
可用的错误最小值ReplicaSunAvailable
正在进行的真实复制
OldReplicaSet:jenkins-86dcf94679(创建了1/1个副本)
新复制集:
活动:
从消息中键入原因年龄
----    ------             ----  ----                   -------
正常扩展复制集42s部署控制器将复制集jenkins-86dcf94679扩展为1
请使用实际渲染的
吊舱
(或其
部署
);闻起来像是某种打字错误;另外,您确定最近更新了
头盔回复
-ed,因为在
头盔安装
命令中添加了
--dry run
选项,请检查生成的yaml配置头盔是否正确
Name:               jenkins
Namespace:          jenkins-project
CreationTimestamp:  Wed, 22 May 2019 22:03:33 -0700
Labels:             app.kubernetes.io/component=jenkins-master
                    app.kubernetes.io/instance=jenkins
                    app.kubernetes.io/managed-by=Tiller
                    app.kubernetes.io/name=jenkins
                    helm.sh/chart=jenkins-1.1.21
Annotations:        deployment.kubernetes.io/revision: 1
Selector:           app.kubernetes.io/component=jenkins-master,app.kubernetes.io/instance=jenkins
Replicas:           1 desired | 1 updated | 1 total | 0 available | 1 unavailable
StrategyType:       Recreate
MinReadySeconds:    0
Pod Template:
  Labels:           app.kubernetes.io/component=jenkins-master
                    app.kubernetes.io/instance=jenkins
                    app.kubernetes.io/managed-by=Tiller
                    app.kubernetes.io/name=jenkins
                    helm.sh/chart=jenkins-1.1.21
  Annotations:      checksum/config: 867177d7ed5c3002201650b63dad00de7eb1e45a6622e543b80fae1f674a99cb
  Service Account:  jenkins
  Init Containers:
   copy-default-config:
    Image:      jenkins/jenkins:lts
    Port:       <none>
    Host Port:  <none>
    Command:
      sh
      /var/jenkins_config/apply_config.sh
    Limits:
      cpu:     2
      memory:  4Gi
    Requests:
      cpu:     50m
      memory:  256Mi
    Environment:
      ADMIN_PASSWORD:  <set to the key 'jenkins-admin-password' in secret 'jenkins'>  Optional: false
      ADMIN_USER:      <set to the key 'jenkins-admin-user' in secret 'jenkins'>      Optional: false
    Mounts:
      /tmp from tmp (rw)
      /usr/share/jenkins/ref/plugins from plugins (rw)
      /usr/share/jenkins/ref/secrets/ from secrets-dir (rw)
      /var/jenkins_config from jenkins-config (rw)
      /var/jenkins_home from jenkins-home (rw)
      /var/jenkins_plugins from plugin-dir (rw)
  Containers:
   jenkins:
    Image:       jenkins/jenkins:lts
    Ports:       8080/TCP, 50000/TCP
    Host Ports:  0/TCP, 0/TCP
    Args:
      --argumentsRealm.passwd.$(ADMIN_USER)=$(ADMIN_PASSWORD)
      --argumentsRealm.roles.$(ADMIN_USER)=admin
    Limits:
      cpu:     2
      memory:  4Gi
    Requests:
      cpu:      50m
      memory:   256Mi
    Liveness:   http-get http://:http/login delay=90s timeout=5s period=10s #success=1 #failure=5
    Readiness:  http-get http://:http/login delay=60s timeout=5s period=10s #success=1 #failure=3
    Environment:
      JAVA_OPTS:
      JENKINS_OPTS:
      JENKINS_SLAVE_AGENT_PORT:  50000
      ADMIN_PASSWORD:            <set to the key 'jenkins-admin-password' in secret 'jenkins'>  Optional: false
      ADMIN_USER:                <set to the key 'jenkins-admin-user' in secret 'jenkins'>      Optional: false
    Mounts:
      /tmp from tmp (rw)
      /usr/share/jenkins/ref/plugins/ from plugin-dir (rw)
      /usr/share/jenkins/ref/secrets/ from secrets-dir (rw)
      /var/jenkins_config from jenkins-config (ro)
      /var/jenkins_home from jenkins-home (rw)
  Volumes:
   plugins:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   tmp:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   jenkins-config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      jenkins
    Optional:  false
   plugin-dir:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   secrets-dir:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
   jenkins-home:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  jenkins-pvc
    ReadOnly:   false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      False   MinimumReplicasUnavailable
  Progressing    True    ReplicaSetUpdated
OldReplicaSets:  jenkins-86dcf94679 (1/1 replicas created)
NewReplicaSet:   <none>
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  42s   deployment-controller  Scaled up replica set jenkins-86dcf94679 to 1