标签: kubernetes-service

NodePort无法与AWS EKS服务器终端节点一起使用

eks服务器端点是xxxxxxxxxxx.xxx.eks.amazonaws.com,我已经创建了带有部署和服务对象的yml文件。

[ec2-user@ip-]$ kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
fakeserver   NodePort    10.100.235.246   <none>        6311:30002/TCP   1h
kubernetes   ClusterIP   10.100.0.1       <none>        443/TCP          1d
Run Code Online (Sandbox Code Playgroud)

当我浏览xxxxxxxxxxx.xxx.eks.amazonaws.com:30002时返回的时间太长而无法响应。安全组具有入站规则中的所有流量。

amazon-web-services kubernetes kubernetes-service amazon-eks

6
推荐指数
1
解决办法
1501
查看次数

如何与 Kubernetes 中的 Sidecar 容器中的 pod 通信?

我无法与侧车集装箱中的吊舱交谈...任何帮助将不胜感激!

这是我的部署

---
apiVersion: extensions/v1beta1
kind: Deployment

metadata:
   name: sidecar-deployment

spec:
replicas: 1

template:
    metadata:
       labels:
          app: sidecar
    spec:
      containers:
      - name: sidecar1
        image: sidecar
        args:
        - /sidecar
        - --port=32000
        - --path=/sidecar1
        ports:
        - containerPort: 32000
      - name: sidecar2
        image: sidecar
        args:
        - /sidecar
        - --port=32001
        - --path=/sidecar2
        ports:
        - containerPort: 32001
Run Code Online (Sandbox Code Playgroud)

这是我为 pod 提供的服务

---
apiVersion: v1
kind: Service

metadata:
  name: sidecar-service

spec:
  ports:
  - name: http
    port: 80
    targetPort: 32001
    protocol: TCP

selector:
  app: sidecar
type: NodePort
Run Code Online (Sandbox Code Playgroud)

部署ingress后,我可以连接到服务和sidecar2,因为sidecar2是通过服务公开的: …

kubernetes kubernetes-service

6
推荐指数
1
解决办法
6226
查看次数

无法连接到 Kubernetes 中的 Mongodb pod(连接被拒绝)

我有一些远程虚拟机,我想在其中部署一些 Mongodb 实例,然后使它们可以远程访问,但由于某种原因,我似乎无法完成这项工作。

这些是我采取的步骤:

  • 我启动了一个在远程虚拟机上运行 Mongodb 的 Kubernetes pod。
  • 然后我通过 Kubernetes NodePort 服务公开它。
  • 然后我尝试从笔记本电脑连接到 Mongodb 实例,但没有成功。

这是我用来尝试连接的命令:

$ mongo host:NodePort   
Run Code Online (Sandbox Code Playgroud)

(“主机”是指 Kubernetes master)。

这是它的输出:

MongoDB shell version v4.0.3
connecting to: mongodb://host:NodePort/test
2018-10-24T21:43:41.462+0200 E QUERY    [js] Error: couldn't connect to server host:NodePort, connection attempt failed: SocketException:
Error connecting to host:NodePort :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

从 Kubernetes master 处,我确保 Mongodb pod 正在运行。然后我在容器中运行 shell 并检查 Mongodb 服务器是否正常工作。此外,我之前通过在 yaml 描述中指定“--bind-ip=0.0.0.0”选项来授予对 Mongodb 服务器的远程访问权限。为了确保已应用此选项,我从同一个 shell 在 Mongodb 实例内运行此命令: …

remote-connection mongodb kubernetes kubernetes-service

6
推荐指数
1
解决办法
1万
查看次数

单个服务公开的多个 Pod 的会话亲和性设置

我有一个设置 Metallb 作为 LB,在 K8S 集群上安装了 Nginx Ingress。我已经阅读了有关会话关联及其重要性的内容,但到目前为止我还没有清楚的了解。

如何创建一个服务来公开同一应用程序的多个 Pod?创建单个服务入口点后,如何将具体的客户端IP映射到服务抽象出来的Pod?

是否有任何博客根据 kubernetes 中如何完成客户端 IP 和 POD 之间的映射来解释这个概念?

但是我在 YAML 中没有看到客户端的 IP。那么,这个服务如何将流量映射到各自的客户端到它的端点?这是我的问题。

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10000
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress kubernetes-pod kubernetes-service

6
推荐指数
2
解决办法
5290
查看次数

“prometheus-operated”服务是做什么的?

Prometheus-operator 似乎生成promethues-operated仅指向端口 9090 的 Prometheus 实例的服务。

这项服务有什么作用?我们定义其他服务来指向我们的 Prometheus 集群。

取消服务会产生什么影响prometheus-operated

kubernetes prometheus prometheus-operator kubernetes-service prometheus-alertmanager

6
推荐指数
1
解决办法
2411
查看次数

KubernetesExternalName服务添加标头

TLDR:我正在使用 AKS 运行 kubernetes 集群。我创建了一个外部名称服务来代理外部地址。我想在请求中添加“主机”标头。我该怎么做呢?

对于更多上下文,我有一个入口控制器来处理所有传入流量。我想将该流量的子集(基于路由)路由到外部 Azure Function。我已经使用我的 Azure Function 的主机名设置了一个ExternalName 服务,并将流量路由到它。但是,由于 Microsoft 处理路由到其功能的方式,标头中需要具有正确 FQDN 的“主机”值。

我不想让发送原始请求的人将其包含在标头中,因此我想在流量代理到 Azure 函数时代表他们添加它。

这是我的服务文件:

kind: Service
apiVersion: v1
metadata:
  name: azure-function-proxy-service
  labels:
    app: proxy-service
spec:
  type: ExternalName
  externalName: azure-function.azurewebsites.net
Run Code Online (Sandbox Code Playgroud)

以及相关的入口规则代码:

- host: hostto.proxy.net
http:
  paths:
  - path: /route/to/proxy
    backend:
      serviceName: azure-function-proxy-service
      servicePort: 80
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress kubernetes-service

5
推荐指数
1
解决办法
3318
查看次数

AWS EKS:服务(LoadBalancer)正在运行但不响应请求

我正在使用 AWS EKS。我已经在 kubernetes 集群中的 gunicorn 的帮助下启动了我的 django 应用程序。

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: api
  labels:
    app: api
    type: web
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: api
        type: web
    spec:
      containers:
      - name: vogofleet
        image: xx.xx.com/api:image2
        imagePullPolicy: Always
        env:
        - name: DATABASE_HOST
          value: "test-db-2.xx.xx.xx.xx.com"
        - name: DATABASE_PASSWORD
          value: "xxxyyyxxx"
        - name: DATABASE_USER
          value: "admin"
        - name: DATABASE_PORT
          value: "5432"
        - name: DATABASE_NAME
          value: "test"
        ports:
        - containerPort: 9000
Run Code Online (Sandbox Code Playgroud)

我已经应用了这些更改,并且可以看到我的 pod 正在运行 kubectl get pods

现在,我试图通过服务对象公开它。这是我的服务对象,

# service …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes kubernetes-service amazon-eks

5
推荐指数
1
解决办法
1101
查看次数

如何显式定义 Kubernetes 服务的端点

我通过 kubespray 在我自己的几个虚拟机上配置了一个 kubernetes 集群。Kubespray 使用project-calico 作为默认网络插件,这非常适合我将集群网络中的代理服务连接到外部世界的要求。

Kubespray 将 apiserver 本身部署为 ClusterIP 服务。为了使其可以从外部访问,它使用主节点主机 IP 地址定义了该服务的端点,据我自己计算,该地址由 Calico 路由到内部 ClusterIP。

我的问题是:如何定义我自己的端点(用于另一个服务),因为这些端点已经通过配置 service.yaml 隐式定义并且不能被覆盖。我想遵循类似的方法让我的 Rook/Ceph 仪表板从集群外部可见。

编辑:请注意kubectl get ingresses.networking.k8s.io --all-namespaces返回No resources found.kubectl describe service kubernete返回

Name:              kubernetes
Namespace:         default
Labels:            component=apiserver
                   provider=kubernetes
Annotations:       <none>
Selector:          <none>
Type:              ClusterIP
IP:                10.233.0.1
Port:              https  443/TCP
TargetPort:        6443/TCP
Endpoints:         192.168.103.254:6443
Session Affinity:  None
Events:            <none>
Run Code Online (Sandbox Code Playgroud)

calico kubernetes kubernetes-service kubespray

5
推荐指数
2
解决办法
8477
查看次数

除非给出完整的 FQDN,否则指向其他命名空间中的服务的外部名称不会解析

my-service在命名空间中有一个 ClusterIP 类型的服务A,可以对几个 Pod 进行负载平衡。我想在命名空间中创建另一个B指向my-service命名空间的ExternalName类型的服务A

我创建以下 YAML:

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: B
spec:
  type: ExternalName
  externalName: my-service.A
Run Code Online (Sandbox Code Playgroud)

如果我执行到命名空间中运行的 podB并执行以下操作:

# ping my-service
ping: my-service: Name or service not known
Run Code Online (Sandbox Code Playgroud)

externalName但是如果我将上面的 YAML更改为以下内容:

# ping my-service
ping: my-service: Name or service not known
Run Code Online (Sandbox Code Playgroud)

事情按预期进行。另外,如果我my-service直接从命名空间中的 pod执行 ping 操作B,则会解决该问题:

# ping my-service.A
PING my-service.A.svc.cluster.local (10.0.80.133) 56(84) bytes of data.
Run Code Online (Sandbox Code Playgroud)

为什么 在ExternalName Service 中 …

dns cname kubernetes coredns kubernetes-service

5
推荐指数
1
解决办法
2332
查看次数

Kubernetes Pod 内的互联网连接无法正常工作

无法从 Pod 内部连接到互联网

我的系统规格包括:我使用 2 个系统创建了一个 Kubernetes 集群,一个作为主节点,另一个作为工作节点。

操作系统:名称 =“Red Hat Enterprise Linux”版本 =“8.3 (Ootpa)”ID =“rhel”。

我使用以下链接安装了 Kuberenetes 集群(https://dzone.com/articles/kubernetes-installation-in-redhat-c ​​entos )

我尝试了 CALICO pod 网络和 Flannel pod 网络,因为都发生了同样的问题。无法从 Pod 内部连接到互联网

请参阅下图了解更多详情

在此输入图像描述

您可以看到所有 Pod 都已启动并正在运行。

我的 coredns pod 也已启动并正在运行,并且相应的服务也已启动,请检查下图

在此输入图像描述

调试

为了调试,我尝试使用此链接(https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/

每当我执行 nslookup 时,它都会显示错误(;; 连接超时;无法访问服务器,命令以退出代码 1 终止)

请看下面的图片

在此输入图像描述

谁能告诉我问题到底出在哪里。为什么我无法从 Pod 内部连接到互联网

任何帮助将不胜感激,谢谢。

docker kubernetes kube-proxy kubernetes-pod kubernetes-service

5
推荐指数
1
解决办法
1万
查看次数