博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在Kubernetes上找到您的Jenkins管理员密码
阅读量:2533 次
发布时间:2019-05-11

本文共 7473 字,大约阅读时间需要 24 分钟。

使Kubernetes易于浏览的工具有时是如此出色,当我找不到找到答案的简单方法时,我会感到惊讶。 作为日常不使用Kubernetes的人,任何中等级别的故障排除都将变成下午的第一天,质疑我的理智,其次,考虑作为牧羊人或其他远离键盘的工作。

它从简单开始。 在这种情况下,我遵循的教程依赖于Kubernetes集群,因此我使用了 ,它是一个很好的简单虚拟环境,可以在笔记本电脑上运行集群环境。 该安装进行得很顺利,所以我开始使用 ,它是Kubernetes的一个非常简单明了的软件包管理器。 我使用Helm的来安装Jenkins,并且可以正常运行。 是事实上的标准,并且让它在短短几分钟内运行就很棒。

我已经配置好环境,并且一切都在响应。 现在,登录到Jenkins的管理员密码是什么?

作为Helm Chart的一部分,Jenkins为其图形用户界面(GUI)配置了默认的用户名和密码。 我已经启动并运行了GUI,但不知道如何登录。

我不知道自己错过了什么,所以我查看了GitHub 并尽可能多的搜索。 我尝试使用Google搜索可能想到的所有相关搜索模式:

  • 如何在Kubernetes上检索Jenkins管理员密码
  • Kubernetes Jenkins密码头盔
  • Jenkins管理员密码Helm Chart
  • Helm Jenkins的使用方法

尽管那里有很多很棒的教程,但是没有一个答案能满足我在初学者水平上的需求。

TL; DR的答案

如果您只想查找您的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。

Jenkins login screen

场景

这是此解决方案的背景。 感谢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中)。 这个非常有用的命令:

  • 执行kubectl命令以提取Jenkins创建的秘密
  • 借助printf$()将执行发送给管道运算符
  • 解码以base64编码存储的密码,然后将其输出到屏幕

起初我没有注意到输出中的那一行,而且我无法通过搜索轻松找到答案,因此希望现在对每个人来说都更简单。

还有一件事…

这里仍然有些死胡同。 我的配置从未分配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/

你可能感兴趣的文章
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
64位MATLAB和C混合编程以及联合调试
查看>>
原生js大总结二
查看>>
PHP基础
查看>>
UVa 11488 超级前缀集合(Trie的应用)
查看>>
Django 翻译与 LANGUAGE_CODE
查看>>
[转]iOS教程:SQLite的创建数据库,表,插入查看数据
查看>>
【转载】OmniGraffle (一)从工具栏开始
查看>>
初识ionic
查看>>
java 中打印调用栈
查看>>
开发 笔记
查看>>
数据挖掘算法比赛 - 简单经验总结
查看>>
生成商户订单号/退款单号
查看>>
使用Android OpenGL ES 2.0绘图之六:响应触摸事件
查看>>