【问题标题】:Helm Chart not deploying correctlyHelm Chart 未正确部署
【发布时间】:2018-10-20 00:14:53
【问题描述】:

我从 kuberneteshelm 开始使用 minikube

我想安装 Jira,但似乎我做错了什么,因为我无法从已部署的服务中获取任何 IP。


这就是我所做的:

1) 从 this repository 下载 Jira 图表

2) 接下来我使用

打包图表
helm package .

其中创建了一个 .tar.gz 文件。

3) 然后我按以下方式安装了图表:

helm install xxxx.tar.gz --name my-jira

我得到以下输出:

STATUS: DEPLOYED

RESOURCES:
==> v1/PersistentVolumeClaim
NAME                                  AGE
my-jira-atlassian-jira-software  1s

==> v1/Service
my-jira-atlassian-jira-software  1s

==> v1beta2/Deployment
my-jira-atlassian-jira-software  1s

==> v1/Pod(related)

NAME                                                   READY  STATUS    
RESTARTS  AGE
jira-atlassian-jira-software-7d55dc5859-cvwnj  0/1    Init:0/1  0         
1s


NOTES:
Atlassian JIRA Software is starting now.
It takes a few minutes to bootstrap a container.
1. Get the JIRA URL by running:
 export POD_NAME=$(kubectl get pods -n default -l "app=atlassian-jira-software,release=my-jira" -o jsonpath="{.items[0].metadata.name}")
 echo https://127.0.0.1:80/
 kubectl -n default port-forward $POD_NAME 8443:8443

2. Proceed the Setup Wizard.
   See also: https://confluence.atlassian.com/adminjiraserver/running-the-setup-wizard-938846872.html

4) 最后我期望这样做:

 minikube service my-jira-atlassian-jira-software --url

...会给我 minikube 创建的服务的 ip。

不幸的是,该命令没有返回任何内容,并且性能选项卡似乎表明没有发生任何事情:-/


我做错了什么的任何想法?

【问题讨论】:

  • 您可以执行建议的 kubectl 命令吗? “kubectl 获取 pods -n 默认”?我假设这是您本地的 kubernetes?否则默认命名空间不是一个好的选择。是否有任何 pod 可以与正在运行的 jira 匹配?还要查看该命名空间中的 kubernetes 事件 - 如果出现问题,可能会有提示。
  • 你的 pod 运行了吗?
  • 是的,pod 正在运行!但是大多数事件部分都是空的,性能选项卡显示太多绿色,我认为引擎盖下没有发生太多事情。就像我部署了一个空图像。

标签: kubernetes jira minikube kubernetes-helm


【解决方案1】:

我已经在我的实验室环境中对此进行了测试。所以修复它的步骤是:

0)kubectl get services --all-namespaces -o wide你可以看到Jira服务是一个ClusterIP这就是你无法访问配置网页的原因。

ClusterIP:在集群内部 IP 上公开服务。选择这个 value 使服务只能从集群内访问。这个 是默认的 ServiceType。

1) 应用下面的 yaml 文件来运行集群。

apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: atlassian-jira-software chart: atlassian-jira-software-0.1.0 heritage: Tiller release: my-jira name: my-jira-atlassian-jira-software spec: ports: - name: http port: 8080 protocol: TCP targetPort: http selector: app: atlassian-jira-software release: my-jira sessionAffinity: None type: NodePort

您还可以在 devops-kompose 配置文件的 values.yaml 中将 ClusterIP 更改为 NodePort。

2) 运行:minikube service my-jira-atlassian-jira-software --url,您将看到可以访问您的应用程序的地址。

这是因为 minikube 是为测试目的而创建的。 minikube VM 通过主机专用 IP 地址暴露给主机系统。解决此问题的另一种方法是配置 Ingress。

【讨论】:

  • 感谢您的回答!不幸的是,将 service.yaml 替换为您提供的那个,然后执行命令行后,我只能无限期地得到“等待,服务端点尚未准备好......”。我最终通过使用您告诉我的服务类型将 ClusterIP 替换为 LoadBalancer 来实现它。
  • 很高兴我能提供帮助,如果它帮助您解决了问题,请考虑接受答案或点赞。
  • 我会接受它,因为您对 k8s 和 minikube 提出了很好的建议,这很有帮助:-)。现在关于问题本身的解决方案,pod 没有消耗资源,因为 JIRA 应用程序在您创建帐户之前处于停用状态。关于获取 IP,我必须将“ClusterIP”(您解释的默认值)更改为“LoadBalancer”。
  • 我必须补充一点,我的方法在我的机器上运行没有问题。你让我想对此进行调查 - 当我得到更多结果时,如果我得到有用的东西,我会在这里分享。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 2021-08-29
  • 1970-01-01
相关资源
最近更新 更多