Helm:如何访问MVC Core WebAPI端点?

时间:2018-02-22 13:11:04

标签: kubernetes-helm

首先,我是Helm的新手。我正在尝试从Docker Hub部署名为mooo999 / webapi的.Net Core WebApi。我在本地测试了它,它工作正常。我已经玩弄了好几天,无法获得最简单的图表。 Deployment.yaml是:

    apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: {{ template "foochart.fullname" . }}
  labels:
    app: {{ template "foochart.name" . }}
    chart: {{ template "foochart.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ template "foochart.name" . }}
      release: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app: {{ template "foochart.name" . }}
        release: {{ .Release.Name }}
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: mooo999/webapi
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /api/values
              port: http
          readinessProbe:
            httpGet:
              path: /api/values
              port: http
          resources:
{{ toYaml .Values.resources | indent 12 }}
    {{- with .Values.nodeSelector }}
      nodeSelector:
{{ toYaml . | indent 8 }}
    {{- end }}
    {{- with .Values.affinity }}
      affinity:
{{ toYaml . | indent 8 }}
    {{- end }}
    {{- with .Values.tolerations }}
      tolerations:
{{ toYaml . | indent 8 }}
    {{- end }}

service.yaml是:

apiVersion: v1
kind: Service
metadata:
  name: {{ template "foochart.fullname" . }}
  labels:
    app: {{ template "foochart.name" . }}
    chart: {{ template "foochart.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: http
      protocol: TCP
      name: http
  selector:
    app: {{ template "foochart.name" . }}
    release: {{ .Release.Name }}

不确定它比这简单得多。我正在使用Azure AKS并且它部署良好而没有错误。我可以使用:

获取端点:端口

kubectl get --namespace default -o jsonpath =" {。spec.ports [0] .nodePort}"服务冷酷无情 kubectl get nodes --namespace default -o jsonpath =" {.project [0] .status.addresses [0] .address}" 但是在浏览器中使用此信息时出现错误[Fiddler]连接到' 10.240.0.4'失败。     错误:TimedOut(0x274c)。

System.Net.Sockets.SocketException连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应10.240.0.4:32678

我需要入口服务吗?有没有人有一个简单的图表实际暴露公共端点?我已经通过无数的例子,并且没有成功。

1 个答案:

答案 0 :(得分:0)

创建图表时的默认ingress.yaml应该足够了,只需将服务名称添加到后端服务并将ingress设置为启用。

您也可以尝试使用loadbalancer作为测试端点的服务类型