- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你们知道吗ClusterIP
服务在目标部署副本之间分配工作负载?
我有一个后端的 5 个副本,一个 ClusterIP 服务选择了它们。我还有另外 5 个 nginx pod 副本指向这个后端部署。但是当我运行一个繁重的请求时,后端停止响应其他请求,直到它完成繁重的请求。
更新
这是我的配置:
Note: I've replaced some info that are related to the company.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 3
template:
metadata:
labels:
app: webapp
tier: frontend
spec:
containers:
- name: python-gunicorn
image: <my-user>/webapp:1.1.2
command: ["/env/bin/gunicorn", "--bind", "0.0.0.0:8000", "main:app", "--chdir", "/deploy/app", "--error-logfile", "/var/log/gunicorn/error.log", "--timeout", "7200"]
resources:
requests:
# memory: "64Mi"
cpu: "0.25"
limits:
# memory: "128Mi"
cpu: "0.4"
ports:
- containerPort: 8000
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /login
port: 8000
initialDelaySeconds: 30
timeoutSeconds: 1200
imagePullSecrets:
# NOTE: the secret has to be created at the same namespace level on which this deployment was created
- name: dockerhub
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
app: webapp
tier: frontend
spec:
# type: LoadBalancer
ports:
- port: 8000
targetPort: 8000
selector:
app: webapp
tier: frontend
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 5
template:
metadata:
labels:
app: nginx
spec:
volumes:
- name: secret-volume
secret:
secretName: nginxsecret
- name: configmap-volume
configMap:
name: nginxconfigmap
containers:
- name: nginxhttps
image: ymqytw/nginxhttps:1.5
command: ["/home/auto-reload-nginx.sh"]
ports:
- containerPort: 443
- containerPort: 80
livenessProbe:
httpGet:
path: /index.html
port: 80
initialDelaySeconds: 30
timeoutSeconds: 1200
resources:
requests:
# memory: "64Mi"
cpu: "0.1"
limits:
# memory: "128Mi"
cpu: "0.25"
volumeMounts:
- mountPath: /etc/nginx/ssl
name: secret-volume
- mountPath: /etc/nginx/conf.d
name: configmap-volume
apiVersion: v1
kind: Service
metadata:
name: nginxsvc
labels:
app: nginxsvc
spec:
type: LoadBalancer
ports:
- port: 80
protocol: TCP
name: http
- port: 443
protocol: TCP
name: https
selector:
app: nginx
server {
server_name local.mydomain.com;
rewrite ^(.*) https://local.mydomain.com$1 permanent;
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
listen 443 ssl;
root /usr/share/nginx/html;
index index.html;
keepalive_timeout 70;
server_name www.local.mydomain.com local.mydomain.com;
ssl_certificate /etc/nginx/ssl/tls.crt;
ssl_certificate_key /etc/nginx/ssl/tls.key;
location / {
proxy_pass http://localhost:8000;
proxy_connect_timeout 7200;
proxy_send_timeout 7200;
proxy_read_timeout 7200;
send_timeout 7200;
}
}
最佳答案
是的,服务类型 ClusterIP
用途 kube-proxy
的 iptables
将请求大致均匀地分布在 round robin
中的规则方式。
documentation说:
By default, the choice of backend is round robin.
round robin
请求的分发可能会受到以下因素的影响:
ClusterIP
建立 TCP session 或安全隧道) iptables
kubernetes 之外的规则 关于kubernetes - ClusterIP 服务是否在副本 Pod 之间分发请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48789227/
我在 GCP 上有一个 Kubernetes 部署和一个 ClusterIP 服务来发现这个部署中的 pod。部署包含多个副本集 pod,它们根据我们的水平 pod 标量配置(基于 CPU 利用率)来
想象一下,如果您日常使用的研发测试Kubernetes集群,能够有以下效果: 在办公网络下直接访问Pod IP 在办公网络下直接访问Service Cluster IP
我在几个POD前面有一个NGINX,它通过ClusterIP公开:没有。 NGINX会将流量转发到这些节点,如下所示: upstream api { server my-api:1066; }
我设置了一个简单的 redis ClusterIP 服务,供集群内的 php LoadBalancer 服务访问。 php日志显示连接超时错误。 redis服务无法访问。 'production'.E
我知道如果我们定义 LoadBalancer 可以将 Public-IP 设置为静态 IP,但是我们可以为服务设置一个静态 Cluster IP 吗? 例子: **NAME
我正在寻求帮助来解决这个无法正常工作的基本场景: 三个节点安装了 kubeadm 在 VirtualBox 虚拟机 在 MacBook 上运行: sudo kubectl get nodes NAME
我已经设置了一些服务和入口来尝试 SSL 终止。我对 LoadBalancer 完全没有问题和 NodePort服务作为后端,但它根本不适用于 ClusterIP服务。 尽管 Ingress 的后端被
Here我已经解释了这个场景。我可以使用 nginx ingress 访问 clusterIP 但无法使用 Azure 应用程序网关 Ingress 访问相同的服务。以下注释对我没有帮助 appgw.
我有一些在常规 Compute Engine 节点上运行的应用程序。此外,我还有一个要将应用程序迁移到的容器集群。迟早所有应用程序都应该位于容器引擎中,以便服务发现变得简单。但目前,Compute E
是否提示,kubernetes中链接了什么消息: The Service "skudns" is invalid:spec.clusterIP: invalid value '': the provi
我想将我的服务部署为ClusterIP,但无法将其应用于给定的错误消息: [xetra11@x11-work coopr-infrastructure]$ kubectl apply -f teamc
你们知道吗ClusterIP服务在目标部署副本之间分配工作负载? 我有一个后端的 5 个副本,一个 ClusterIP 服务选择了它们。我还有另外 5 个 nginx pod 副本指向这个后端部署。但
我有一个包含以下内容的 Kubernetes 集群: 一些演示网络服务器的部署 公开此部署 pod 的 ClusterIP 服务 现在,我有了服务的集群IP: NAME TY
我用 ClusterIP 定义了一个新服务。 [ciuffoly@master-node ~]$ kubectl get services NAME TYPE CL
节点端口 这种访问仪表板的方式仅推荐用于单节点设置中的开发环境。 编辑 kubernetes-dashboard 服务。 $ kubectl -n kube-system 编辑服务 kubernete
我正在尝试将 clusterIP 分配给 kube 集群中的一个 Service。我知道 IP 范围,因此我可以从该 IP 范围形成新的 IP。 我正在容器内实现代理。所以我需要知道依赖服务的 clu
我对网络和 gRPC 的理解可能遗漏了一些东西。我想从一个例子开始解释我是如何理解网络的。 我在默认命名空间中部署了 3 个名为 app 的副本他们有 pod IP: 10.3.0.1, 10.3.0
我们有 Helm 3.0.3 和 1.18 k8s,一年以来我们没有遇到过像下面这样的任何问题。我们通过 helm 将多个微服务部署到 k8s,到目前为止一切正常。但即使我们没有对服务字段进行任何更改
在我的 gcloud 控制台中,我定义的入口显示以下错误: Error during sync: error while evaluating the ingress spec: service "m
我试图深入了解从公开暴露的负载均衡器的第 2 层 VIP 转发到服务的集群 IP 的工作原理。我已经阅读了高级概述 MetalLB does it我尝试通过设置 keepalived/ucarp VI
我是一名优秀的程序员,十分优秀!