我正在尝试访问库伯内特斯集群部署的Spring Boot微服务并尝试测试REST API。我在部署脚本中配置了节点端口方法。但是当我尝试使用Postman工具访问时,我只得到“无法获得任何响应”的响应。
我配置了服务。yaml脚本类似于以下结构,
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
ports:
- port: 7100
targetPort: 7100
protocol: TCP
name: http
nodePort: 31007
selector:
app: my-deployment
我的部署。yaml如下所示:,
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
app: my-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-deployment
template:
metadata:
labels:
app: my-deployment
annotations:
date: "+%H:%M:%S %d/%m/%y"
spec:
imagePullSecrets:
- name: "regcred"
containers:
- name: my-deployment-container
image: spacestudymilletech010/spacestudysecurityauthcontrol:latest
imagePullPolicy: Always
ports:
- name: http
containerPort: 8065
protocol: TCP
tolerations:
- key: "dedicated-app"
operator: "Equal"
value: "my-dedi-app-a"
effect: "NoSchedule"
当我使用kubectl描述服务
时,输出如下所示,
我正在尝试通过以下方式访问我部署的API,
http://<my-cluster-Worker-NodeIP-Address:31007/<my-deployed-ReST-API-end-point>
更新
当我为我的部署运行kubectl descripe pod
命令时,我得到如下响应:,
docker@MILDEVKUB010:~$ kubectl describe pod spacestudycontrolalerts-
deployment-8644449c58-x4zd6
Name: spacestudycontrolalerts-deployment-8644449c58-x4zd6
Namespace: default
Priority: 0
Node: <none>
Labels: app=spacestudycontrolalerts-deployment
pod-template-hash=8644449c58
Annotations: date: +%H:%M:%S %d/%m/%y
Status: Pending
IP:
IPs: <none>
Controlled By: ReplicaSet/spacestudycontrolalerts-deployment-8644449c58
Containers:
spacestudycontrolalerts-deployment-container:
Image: spacestudymilletech010/spacestudycontrolalerts:latest
Port: 7102/TCP
Host Port: 0/TCP
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-6s55b (ro)
Conditions:
Type Status
PodScheduled False
Volumes:
default-token-6s55b:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-6s55b
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler 0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.
我从描述pod命令中得到事件消息,比如0/2个节点可用:2个节点有pod不能容忍的污染
如上所示。
当我运行
kubectl获取节点
命令时,我得到如下所示,
NAME STATUS ROLES AGE VERSION
mildevkub020 Ready master 5d v1.17.0
mildevkub040 Ready master 5d v1.17.0
服务访问哪里出错了?
首先,由于部署时定义的容忍度,POD未能调度。yaml与可用节点上应用的污染不匹配。
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler 0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.
其次,从问题陈述中的日志中,选择符定义在服务上。yaml与所述POD上的标签不匹配,并且对于映射到该服务的endpoint将是一个问题。
选择器字段处于服务状态。亚马尔
selector:
app: my-deployment
描述命令中的pods标签
docker@MILDEVKUB010:~$ kubectl describe pod spacestudycontrolalerts-
deployment-8644449c58-x4zd6
Labels: app=spacestudycontrolalerts-deployment
pod-template-hash=8644449c58
快照不显示endpoint
。这意味着服务或选择器后面没有运行吊舱
selector:
app: my-deployment
...在任何跑步舱中都不符合这样的标签。
如果存在事件消息,即0/2个节点可用:2个节点存在pod无法容忍的污染
。这意味着你的节点受到了污染。
步骤1:-验证是否存在污染kubectl描述节点| grep-i污染
第2步:-清除污点,确认已清除。
请注意,该键的末尾附加了一个减号。
kubectl污染节点——所有节点角色。库伯内特斯。io/master-
kubectl污染节点--allnode-role.kubernetes.io/not-ready-
kubectl污染节点--allnode-role.kubernetes.io/unreachable-
第3步:-然后根据您的deployment.yaml文件,我们需要创建Taint。
kubectl污染节点1专用应用程序:my-dedi-app-a:NoSchedule
第4步:-验证是否存在污染kubectl描述节点| grep-i污染
第5步:-部署你的团队。yaml文件kubectl apply-f部署。yaml
您可以在PodSpec中指定pod的容差。以下两种容忍度都“匹配”了上面kubectl污染线产生的污染,因此任何一种容忍度的pod都可以安排在节点1上
https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
此外,您的descripe pod
显示您的部署名称为SpaceStudyControllerts部署
。这让我们对你的部署感到困惑。yaml文件,即元数据。名称:我的部署<代码>确保用各自的部署名称描述pod。
我希望这能帮助大家将来参考《圣徒与宽容》。
我假设上述证书的路径是主机上的路径,python脚本将从中获取文件,然后进行YAML构建? 测试呼叫3: 测试呼叫4:
我正在尝试在minikube(Windows-10)上部署简单的spring boot REST服务。下面是我的配置 Docker文件 docker image运行良好,我能够运行该应用程序。 部署 服务 我无法使用< code > service-IP:node port/Uri < br > http://127 . 0 . 0 . 1:30008/hello访问restendpoint ht
目前,我正试图通过创建Helm图表,在Kubernetes集群上部署我的微服务endpointDocker映像。为此,我创建了图表,并更改了values.yaml和deployment.yaml中的参数以进行端口更改。而且我还想从我的角前端访问。所以我添加了service type=nodeport。当我描述该服务时,它给了我可访问的端口。 我访问了http://node-ip:30983/end
本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。 在部署的过程中,将详细列出各组件的启动参数,它们的含义和可能遇到的问题。 部署完成后,你将理解系统各组件的交互原理,进而能快速解决实际问题。 所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。
本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。
本文档介绍用 3 台服务器构建 Seafile 高可用集群的架构。这里介绍的架构仅能实现“服务高可用”,而不能支持通过扩展更多的节点来提升服务性能。如果您需要“可扩展 + 高可用”的方案,请参考Seafile 可扩展集群文档。 在这种高可用架构中包含3个主要的系统部件: Seafile 服务器:提供 Seafile 服务的软件 MariaDB 数据库集群:保存小部分的 Seafile 元数据,比如