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
我无法与侧车集装箱中的吊舱交谈...任何帮助将不胜感激!
这是我的部署
---
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是通过服务公开的: …
我有一些远程虚拟机,我想在其中部署一些 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 实例内运行此命令: …
我有一个设置 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
Prometheus-operator 似乎生成promethues-operated仅指向端口 9090 的 Prometheus 实例的服务。
这项服务有什么作用?我们定义其他服务来指向我们的 Prometheus 集群。
取消服务会产生什么影响prometheus-operated?
kubernetes prometheus prometheus-operator kubernetes-service prometheus-alertmanager
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) 我正在使用 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
我通过 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) 我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 中 …
无法从 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
kubernetes ×10
amazon-eks ×2
calico ×1
cname ×1
coredns ×1
dns ×1
docker ×1
kube-proxy ×1
kubespray ×1
mongodb ×1
prometheus ×1