【问题标题】:kubectl apply -f k8s: is unable to recognize service and deployment and has no matches for kind "Service" in version "v1"kubectl apply -f k8s:无法识别服务和部署,并且在版本“v1”中没有匹配类型“服务”
【发布时间】:2019-10-12 22:26:24
【问题描述】:

我在 OVH 上运行 kubernetes 没有问题。但是由于其他问题,我最近重新安装了构建服务器并设置了所有内容,但是当尝试应用文件时,它给出了这个可怕的错误。我错过了什么吗?这个错误的真正含义是什么?

+ kubectl apply -f k8s
unable to recognize "k8s/driver-cluster-ip-service.yaml": no matches for kind "Service" in version "v1"
unable to recognize "k8s/driver-deployment.yaml": no matches for kind "Deployment" in version "apps/v1"
unable to recognize "k8s/driver-mysql-cluster-ip-service.yaml": no matches for kind "Service" in version "v1"
unable to recognize "k8s/driver-mysql-deployment.yaml": no matches for kind "Deployment" in version "apps/v1"
unable to recognize "k8s/driver-mysql-persistent-volume-claim.yaml": no matches for kind "PersistentVolumeClaim" in version "v1"
unable to recognize "k8s/driver-phpmyadmin-cluster-ip-service.yaml": no matches for kind "Service" in version "v1"
unable to recognize "k8s/driver-phpmyadmin-deployment.yaml": no matches for kind "Deployment" in version "apps/v1"

我在 SO 上尝试了所有以前的答案,但没有一个适合我。我不认为我真的需要它,“如果我错了,请纠正我”。我真的很想得到一些帮助。

我已经安装了 kubectl,并且我得到了一个我使用的配置文件。 当我执行kubectl get pods 命令时,我得到了之前部署的 pod

这些是一些 yml 文件

k8s/driver-cluster-ip-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: driver-cluster-ip-service
spec:
  type: ClusterIP
  selector:
    component: driver-service
  ports:
    - port: 3000
      targetPort: 8080

k8s/driver-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: driver-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: driver-service
  template:
    metadata:
      labels:
        component: driver-service
    spec:
      containers:
        - name: driver
          image: repo.taxi.com/driver-service
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
      imagePullSecrets:
        - name: taxiregistry

dockerfile

FROM maven:3.6.0-jdk-8-slim AS build
COPY . /home/app/
RUN rm /home/app/controllers/src/main/resources/application.properties
RUN mv /home/app/controllers/src/main/resources/application-kubernetes.properties /home/app/controllers/src/main/resources/application.properties
RUN mvn -f /home/app/pom.xml clean package

FROM openjdk:8-jre-slim
COPY --from=build /home/app/controllers/target/controllers-1.0.jar /usr/local/lib/driver-1.0.0.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/lib/driver-1.0.0.jar"]

kubectl get pods command

kubectl api-versions

【问题讨论】:

  • 这与您在凭据失败时遇到的错误相同——如果您询问kubectl get nodes,您将看到相同的错误;您必须理顺构建服务器上的凭据
  • 当我输入kubectl get nodes 时,我得到了一个节点.. 看下面的截图imgur.com/52RQynw 我需要在某个地方说它需要使用那个节点吗?如果是这样,我该怎么做?

标签: linux docker kubernetes microservices kubectl


【解决方案1】:

找到解决方案

我必须将二进制文件放在一个 .kube 文件夹中,该文件夹应该放在根目录中 就我而言,我必须首先在根目录中手动创建 .kube 文件夹。

之后,我将 env 变量设置为该文件夹,并将我的配置文件和我的设置也放在那里

然后我必须与 jenkins 用户共享文件夹并将权限应用于 jenkins 组

Jenkins 不是最新的,所以我不得不重新启动 jenkins 服务器。

它就像一个魅力!

请记住重新启动 jenkins 服务器,以便您所做的更改会影响 jenkins。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-28
    • 2021-10-04
    • 2019-11-28
    • 1970-01-01
    • 2020-02-24
    • 2021-08-03
    • 2019-08-22
    • 2019-11-23
    相关资源
    最近更新 更多