kubernetes 关于apiVersion版本的报错

一、报错内容

error: unable to recognize "nginx-deployment.yaml": no matches for kind "Deployment" in version "v1"

二、错误原因

1、原因一:格式错误

        kind的格式错误,首字母需要大写,比如Pod、Deployment

2、原因二:版本问题

        Kubernetes的版本不同,apiVersion的写法不同,那版本这么多该怎么写呢

 #查询Kubernetes的所有apiserver版本

kubectl api-versions

#然后我们查询一下哪个版本支持Deployment呢,查找到对应的版本,修改apiversion的版本即可

kubectl api-resources | grep deployment

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是Kubernetes部署Hyperf并安装composer的步骤: 1. 首先,你需要在本地安装好 kubectl 命令行工具并连接到你的 Kubernetes 集群。 2. 创建一个新的 Kubernetes deployment,可以参考下面的 YAML 文件: ``` apiVersion: apps/v1 kind: Deployment metadata: name: hyperf-app spec: replicas: 1 selector: matchLabels: app: hyperf-app template: metadata: labels: app: hyperf-app spec: containers: - name: hyperf image: hyperf/hyperf:latest ports: - containerPort: 9501 volumeMounts: - name: app mountPath: /var/www/html volumes: - name: app configMap: name: hyperf-app items: - key: index.php path: index.php ``` 这个 YAML 文件中,我们创建了一个名为 `hyperf-app` 的 deployment,使用 `hyperf/hyperf:latest` 镜像作为容器运行环境,并将容器端口号设置为 9501。 注意,我们还使用了一个 Kubernetes ConfigMap 来将 `index.php` 文件挂载到容器的 `/var/www/html` 目录中,这样我们就可以在容器中运行 Hyerf 项目了。 3. 创建一个新的 Kubernetes service,可以参考下面的 YAML 文件: ``` apiVersion: v1 kind: Service metadata: name: hyperf-service spec: selector: app: hyperf-app ports: - name: http port: 80 targetPort: 9501 type: LoadBalancer ``` 这个 YAML 文件中,我们创建了一个名为 `hyperf-service` 的 service,使用 `LoadBalancer` 类型,将容器的端口号 9501 映射到了 service 的端口号 80。 4. 执行以下命令,创建上述 deployment 和 service: ``` kubectl apply -f deployment.yaml kubectl apply -f service.yaml ``` 5. 等待 deployment 和 service 创建完成后,执行以下命令,获取 service 的外部 IP 地址: ``` kubectl get svc hyperf-service ``` 这个命令会返回类似下面的输出: ``` NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hyperf-service LoadBalancer 10.0.0.1 123.456.789.0 80:30000/TCP 1m ``` 其中 `EXTERNAL-IP` 就是 service 的外部 IP 地址。 6. 在本地使用 SSH 连接到你的 Kubernetes 集群,并在终端中执行以下命令,安装 composer: ``` kubectl exec -it hyperf-app-<pod-id> -- /bin/bash -c "curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer" ``` 其中 `<pod-id>` 是你的 deployment 中的某个 pod 的 ID,可以通过执行以下命令获取: ``` kubectl get pods ``` 这个命令会返回类似下面的输出: ``` NAME READY STATUS RESTARTS AGE hyperf-app-7c95d5c7c6-4xp8w 1/1 Running 0 1m ``` 其中 `hyperf-app-7c95d5c7c6-4xp8w` 就是一个 pod 的 ID。 7. 然后,你就可以在容器中使用 composer 命令了。例如,可以执行以下命令安装 Hyerf 项目所需的依赖: ``` kubectl exec -it hyperf-app-<pod-id> -- /bin/bash -c "cd /var/www/html && composer install" ``` 注意,这里的 `<pod-id>` 同样需要替换成你的 deployment 中的某个 pod 的 ID。 好了,以上就是在 Kubernetes 集群中部署 Hyerf 并安装 composer 的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值