赞
踩
使Kubernetes易于浏览的工具有时是如此出色,当我找不到找到答案的简单方法时,我会感到惊讶。 作为日常不使用Kubernetes的人,任何中等级别的故障排除都将变成下午的第一天,质疑我的理智,其次,考虑作为牧羊人或其他远离键盘的工作。
它从简单开始。 在这种情况下,我遵循的教程依赖于Kubernetes集群,因此我使用了Minikube ,它是一个很好的简单虚拟环境,可以在笔记本电脑上运行集群环境。 该安装进行得很顺利,所以我开始使用Helm ,它是Kubernetes的一个非常简单明了的软件包管理器。 我使用Helm的Charts之一来安装Jenkins,并且可以正常运行。 Jenkins是DevOps管道的事实上的标准,并且让它在短短几分钟内运行就很棒。
我已经配置好环境,并且一切都在响应。 现在,登录到Jenkins的管理员密码是什么?
作为Helm Chart的一部分,Jenkins为其图形用户界面(GUI)配置了默认的用户名和密码。 我已经启动并运行了GUI,但不知道如何登录。
我不知道自己错过了什么,所以我查看了GitHub 存储库中的图表,并进行了尽可能多的搜索。 我尝试使用Google搜索可能想到的所有相关搜索模式:
尽管那里有很多很棒的教程,但是没有一个答案能满足我在初学者水平上的需求。
如果您只想查找您的Jenkins密码,而不在乎它为什么起作用,请运行以下命令:
printf $ ( kubectl get secret --namespace jenkins jenkins -o jsonpath = "{.data.jenkins-admin-password}" | base64 --decode ) ; echo
默认用户是admin 。 现在您已经知道了这两个详细信息,您可以登录UI。 您问的UI在哪里? 运行这个:
-
-
-
-
-
-
- # Be sure to update your jenkins pod name in the following command
-
-
- $ kubectl port-forward jenkins-7565554b8f-cvhbd
-
- 8088 :
-
- 8080
-
-
-
然后,您可以导航到127.0.0.1:8088以访问UI。
这是此解决方案的背景。 感谢Minikube,我在Kubernetes本地环境中工作。 我通过Homebrew( 作为MacOS用户 )安装了Kubernetes软件包管理器Helm ,并采取了下一步:
-
-
-
-
-
-
- $ helm
-
- install
-
- --name jenkins stable
-
- / jenkins
-
- --namespace jenkins
-
-
- Error: could not
-
- find tiller
-
-
-
只是在开玩笑-每当Helms在集群中第一次运行时,您都必须初始化Tiller服务。 Helm词汇表说:
分iller是Helm的集群内组件。 它与Kubernetes API服务器直接交互以安装,升级,查询和删除Kubernetes资源。 它还存储代表发布的对象。
让我们这样做吧:
-
-
-
-
-
-
- $ helm init
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
- / repository
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
- / repository
-
- / cache
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
- / repository
-
- /
-
- local
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
- / plugins
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
- / starters
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
- / cache
-
- / archive
-
-
- Creating
-
- / Users
-
- / mbbroberg
-
- / .helm
-
- / repository
-
- / repositories.yaml
-
-
- Adding stable repo with URL: https:
-
- // kubernetes-charts.storage.googleapis.com
-
-
- Adding
-
- local repo with URL: http:
-
- // 127.0.0.1:
-
- 8879
-
- / charts
-
-
-
-
- $HELM_HOME has been configured at
-
- / Users
-
- / mbbroberg
-
- / .helm.
-
-
-
-
-
- Tiller
-
- ( the Helm server-side component
-
- ) has been installed into your Kubernetes Cluster.
-
-
-
-
-
- Please note: by default, Tiller is deployed with an insecure
-
- 'allow unauthenticated users' policy.
-
-
- To prevent this, run
-
- ` helm init
-
- ` with the
-
- --tiller-tls-verify flag.
-
-
- For
-
- more information on securing your installation see: https:
-
- // docs.helm.sh
-
- / using_helm
-
- /
-
- #securing-your-helm-installation
-
-
-
现在是时候安装Jenkins并确认它在线了:
-
-
-
-
-
-
- helm
-
- install
-
- --name jenkins stable
-
- / jenkins
-
- --namespace jenkins
-
-
- NAME: jenkins
-
-
- LAST DEPLOYED: Tue May
-
- 28
-
- 11 :
-
- 12 :
-
- 39
-
- 2019
-
-
- NAMESPACE: jenkins
-
-
- 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 standard 0s
-
-
-
-
-
- ==
-
- > v1
-
- / Pod
-
- ( related
-
- )
-
-
- NAME READY STATUS RESTARTS AGE
-
-
- jenkins-7565554b8f-cvhbd
-
- 0
-
- /
-
- 1 Pending
-
- 0 0s
-
-
-
-
-
- ==
-
- > v1
-
- / Role
-
-
- NAME AGE
-
-
- jenkins-schedule-agents 0s
-
-
-
-
-
- ==
-
- > v1
-
- / RoleBinding
-
-
- NAME AGE
-
-
- jenkins-schedule-agents 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.96.90.0
-
- < pending
-
- >
-
- 8080 :
-
- 32015
-
- / TCP 0s
-
-
- jenkins-agent ClusterIP 10.103.85.49
-
- < none
-
- >
-
- 50000
-
- / TCP 0s
-
-
-
-
-
- ==
-
- > v1
-
- / ServiceAccount
-
-
- NAME SECRETS AGE
-
-
- jenkins
-
- 1 0s
-
-
-
-
-
-
-
-
- NOTES:
-
-
-
-
- 1 . Get your
-
- 'admin' user password by running:
-
-
-
-
- printf $
-
- ( kubectl get secret
-
- --namespace jenkins 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 -w jenkins'
-
-
-
-
- export
-
- SERVICE_IP =$
-
- ( kubectl get svc
-
- --namespace jenkins 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
-
-
-
-
-
- $ kubectl get pods
-
- --namespace jenkins
-
-
- NAME READY STATUS RESTARTS AGE
-
-
- jenkins-7565554b8f-cvhbd
-
- 1
-
- /
-
- 1 Running
-
- 0 9m
-
-
-
您会注意到,获取管理员密码的神奇命令是上面冗长的输出的一部分(在注释1中)。 这个非常有用的命令:
起初我没有注意到输出中的那一行,而且我无法通过搜索轻松找到答案,因此希望现在对每个人来说都更简单。
这里仍然有些死胡同。 我的配置从未分配SERVICE_IP , 如上面输出(注2)中所述。 Jessica Repka建议设置从Pod到本地主机的端口转发,以便可以在本地对其进行寻址。 这样,我就可以访问UI,就好像它在笔记本电脑上本地运行,而不是在Minikube的容器中运行一样。
-
-
-
-
-
-
- # Be sure to update your jenkins pod name in the following command
-
-
- $ kubectl port-forward jenkins-7565554b8f-cvhbd
-
- 8088 :
-
- 8080
-
-
-
通过使该终端窗口保持运行状态,我将端口转发到本地可用端口(我在此处选择了8088) ,可以在http://127.0.0.1:8088/login上使用Jenkins。
我希望这个方法可以帮助其他人在Kubernetes上开始使用Jenkins。
翻译自: https://opensource.com/article/19/6/jenkins-admin-password-helm-kubernetes
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。