当前位置:   article > 正文

如何在Kubernetes上找到您的Jenkins管理员密码

kubekey安装jenkins对应的账号密码

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

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

我已经配置好环境,并且一切都在响应。 现在,登录到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在哪里? 运行这个:

  1. # Be sure to update your jenkins pod name in the following command
  2. $ kubectl port-forward jenkins-7565554b8f-cvhbd
  3. 8088 :
  4. 8080

然后,您可以导航到127.0.0.1:8088以访问UI。

Jenkins login screen

场景

这是此解决方案的背景。 感谢Minikube,我在Kubernetes本地环境中工作。 我通过Homebrew( 作为MacOS用户 )安装了Kubernetes软件包管理器Helm ,并采取了下一步:

  1. $ helm
  2. install
  3. --name jenkins stable
  4. / jenkins
  5. --namespace jenkins
  6. Error: could not
  7. find tiller

只是在开玩笑-每当Helms在集群中第一次运行时,您都必须初始化Tiller服务。 Helm词汇表说:

分iller是Helm的集群内组件。 它与Kubernetes API服务器直接交互以安装,升级,查询和删除Kubernetes资源。 它还存储代表发布的对象。

让我们这样做吧:

  1. $ helm init
  2. Creating
  3. / Users
  4. / mbbroberg
  5. / .helm
  6. Creating
  7. / Users
  8. / mbbroberg
  9. / .helm
  10. / repository
  11. Creating
  12. / Users
  13. / mbbroberg
  14. / .helm
  15. / repository
  16. / cache
  17. Creating
  18. / Users
  19. / mbbroberg
  20. / .helm
  21. / repository
  22. /
  23. local
  24. Creating
  25. / Users
  26. / mbbroberg
  27. / .helm
  28. / plugins
  29. Creating
  30. / Users
  31. / mbbroberg
  32. / .helm
  33. / starters
  34. Creating
  35. / Users
  36. / mbbroberg
  37. / .helm
  38. / cache
  39. / archive
  40. Creating
  41. / Users
  42. / mbbroberg
  43. / .helm
  44. / repository
  45. / repositories.yaml
  46. Adding stable repo with URL: https:
  47. // kubernetes-charts.storage.googleapis.com
  48. Adding
  49. local repo with URL: http:
  50. // 127.0.0.1:
  51. 8879
  52. / charts
  53. $HELM_HOME has been configured at
  54. / Users
  55. / mbbroberg
  56. / .helm.
  57. Tiller
  58. ( the Helm server-side component
  59. ) has been installed into your Kubernetes Cluster.
  60. Please note: by default, Tiller is deployed with an insecure
  61. 'allow unauthenticated users' policy.
  62. To prevent this, run
  63. ` helm init
  64. ` with the
  65. --tiller-tls-verify flag.
  66. For
  67. more information on securing your installation see: https:
  68. // docs.helm.sh
  69. / using_helm
  70. /
  71. #securing-your-helm-installation

现在是时候安装Jenkins并确认它在线了:

  1. helm
  2. install
  3. --name jenkins stable
  4. / jenkins
  5. --namespace jenkins
  6. NAME:   jenkins
  7. LAST DEPLOYED: Tue May
  8. 28
  9. 11 :
  10. 12 :
  11. 39
  12. 2019
  13. NAMESPACE: jenkins
  14. STATUS: DEPLOYED
  15. RESOURCES:
  16. ==
  17. > v1
  18. / ConfigMap
  19. NAME           DATA  AGE
  20. jenkins        
  21. 5     0s
  22. jenkins-tests  
  23. 1     0s
  24. ==
  25. > v1
  26. / Deployment
  27. NAME     READY  UP-TO-DATE  AVAILABLE  AGE
  28. jenkins  
  29. 0
  30. /
  31. 1    
  32. 1          
  33. 0          0s
  34. ==
  35. > v1
  36. / PersistentVolumeClaim
  37. NAME     STATUS   VOLUME    CAPACITY  ACCESS MODES  STORAGECLASS  AGE
  38. jenkins  Pending  standard  0s
  39. ==
  40. > v1
  41. / Pod
  42. ( related
  43. )
  44. NAME                      READY  STATUS   RESTARTS  AGE
  45. jenkins-7565554b8f-cvhbd  
  46. 0
  47. /
  48. 1    Pending  
  49. 0         0s
  50. ==
  51. > v1
  52. / Role
  53. NAME                     AGE
  54. jenkins-schedule-agents  0s
  55. ==
  56. > v1
  57. / RoleBinding
  58. NAME                     AGE
  59. jenkins-schedule-agents  0s
  60. ==
  61. > v1
  62. / Secret
  63. NAME     TYPE    DATA  AGE
  64. jenkins  Opaque  
  65. 2     0s
  66. ==
  67. > v1
  68. / Service
  69. NAME           TYPE          CLUSTER-IP    EXTERNAL-IP  PORT
  70. ( S
  71. )         AGE
  72. jenkins        LoadBalancer  10.96.90.0    
  73. < pending
  74. >    
  75. 8080 :
  76. 32015
  77. / TCP  0s
  78. jenkins-agent  ClusterIP     10.103.85.49  
  79. < none
  80. >      
  81. 50000
  82. / TCP       0s
  83. ==
  84. > v1
  85. / ServiceAccount
  86. NAME     SECRETS  AGE
  87. jenkins  
  88. 1        0s
  89. NOTES:
  90. 1 . Get your
  91. 'admin' user password by running:
  92.  
  93. printf $
  94. ( kubectl get secret
  95. --namespace jenkins jenkins
  96. -o
  97. jsonpath =
  98. "{.data.jenkins-admin-password}"
  99. | base64 --decode
  100. ) ;
  101. echo
  102. 2 . Get the Jenkins URL to visit by running these commands
  103. in the same shell:
  104.   NOTE: It may take a few minutes
  105. for the LoadBalancer IP to be available.
  106.         You can
  107. watch the status of by running
  108. 'kubectl get svc --namespace jenkins -w jenkins'
  109.  
  110. export
  111. SERVICE_IP =$
  112. ( kubectl get svc
  113. --namespace jenkins jenkins
  114. --template
  115. "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}"
  116. )
  117.  
  118. echo http:
  119. //
  120. $SERVICE_IP :
  121. 8080
  122. /
  123. login
  124. 3 . Login with the password from step
  125. 1 and the username: admin
  126. For
  127. more information on running Jenkins on Kubernetes, visit:
  128. https:
  129. // cloud.google.com
  130. / solutions
  131. / jenkins-on-container-engine
  132. $ kubectl get pods
  133. --namespace jenkins
  134. NAME                       READY     STATUS    RESTARTS   AGE
  135. jenkins-7565554b8f-cvhbd  
  136. 1
  137. /
  138. 1       Running  
  139. 0          9m

您会注意到,获取管理员密码的神奇命令是上面冗长的输出的一部分(在注释1中)。 这个非常有用的命令:

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

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

还有一件事…

这里仍然有些死胡同。 我的配置从未分配SERVICE_IP 如上面输出(注2)中所述。 Jessica Repka建议设置从Pod到本地主机的端口转发,以便可以在本地对其进行寻址。 这样,我就可以访问UI,就好像它在笔记本电脑上本地运行,而不是在Minikube的容器中运行一样。

  1. # Be sure to update your jenkins pod name in the following command
  2. $ kubectl port-forward jenkins-7565554b8f-cvhbd
  3. 8088 :
  4. 8080

通过使该终端窗口保持运行状态,我将端口转发到本地可用端口(我在此处选择了8088) ,可以在http://127.0.0.1:8088/login上使用Jenkins。

我希望这个方法可以帮助其他人在Kubernetes上开始使用Jenkins。

翻译自: https://opensource.com/article/19/6/jenkins-admin-password-helm-kubernetes

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/130477
推荐阅读
相关标签
  

闽ICP备14008679号