本文共 7473 字,大约阅读时间需要 24 分钟。
使Kubernetes易于浏览的工具有时是如此出色,当我找不到找到答案的简单方法时,我会感到惊讶。 作为日常不使用Kubernetes的人,任何中等级别的故障排除都将变成下午的第一天,质疑我的理智,其次,考虑作为牧羊人或其他远离键盘的工作。
它从简单开始。 在这种情况下,我遵循的教程依赖于Kubernetes集群,因此我使用了 ,它是一个很好的简单虚拟环境,可以在笔记本电脑上运行集群环境。 该安装进行得很顺利,所以我开始使用 ,它是Kubernetes的一个非常简单明了的软件包管理器。 我使用Helm的来安装Jenkins,并且可以正常运行。 是事实上的标准,并且让它在短短几分钟内运行就很棒。
我已经配置好环境,并且一切都在响应。 现在,登录到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( )安装了Kubernetes软件包管理器 ,并采取了下一步:
$ helm install --name jenkins stable / jenkins --namespace jenkins Error: could not find tiller
只是在开玩笑-每当Helms在集群中第一次运行时,您都必须初始化Tiller服务。 说:
分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)中所述。 建议设置从Pod到本地主机的端口转发,以便可以在本地对其进行寻址。 这样,我就可以访问UI,就好像它在笔记本电脑上本地运行,而不是在Minikube的容器中运行一样。
# Be sure to update your jenkins pod name in the following command $ kubectl port-forward jenkins-7565554b8f-cvhbd 8088 : 8080
通过使该终端窗口保持运行状态,我将端口转发到本地可用端口(我在此处选择了8088) ,可以在使用Jenkins。
我希望这个方法可以帮助其他人在Kubernetes上开始使用Jenkins。
翻译自:
转载地址:http://zvbzd.baihongyu.com/