Kubernetes command、args的区别

command、args的区别

# command、args两项实现覆盖Dockerfile中ENTRYPOINT的功能,具体的command命令代替ENTRYPOINT的命令行,args代表集体的参数。

# 以下是使用场景
1. 如果command和args均没有指定,那么则使用Dockerfile的配置。

2. 如果command没有指定,但指定了args,那么Dockerfile中配置的ENTRYPOINT的命令行会被执行,并且将args中填写的参数追加到ENTRYPOINT中。

3. 如果command指定了,但args没有写,那么Dockerfile默认的配置会被忽略,执行输入的command(不带任何参数,当然command中可自带参数)。

4. 如果command和args都指定了,那么Dockerfile的配置被忽略,执行command并追加上args参数。
[root@Master ~]# vim pod-busybox-command-args.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-busybox-command-args
  labels:
    name: pod-busybox-command-args
spec:
  containers:
  - name: busybox
    image: busybox
    imagePullPolicy: IfNotPresent
    command: ["/bin/sh","-c","sleep 3600"]

[root@Master ~]# kubectl create -f pod-busybox-command-args.yaml 
pod/pod-busybox-command-args created
[root@Master ~]# kubectl get pods
NAME                      READY   STATUS    RESTARTS   AGE
pod-busybox-command-args   1/1     Running   0          4s

删除pod
[root@Master ~]# kubectl delete pod pod-busybox-command-args
pod "pod-busybox-command-args" deleted

修改方式一:
[root@Master ~]# vim pod-busybox-command-args.yaml 
    command: ["/bin/sh","-c","sleep 3600"]
    修改为
    command: ["/bin/sh"]
    args: ["-c","sleep 3600"]
    
[root@Master ~]# kubectl create -f pod-busybox-command-args.yaml 
pod/pod-busybox-command-args created
[root@Master ~]# kubectl get pods
NAME                      READY   STATUS    RESTARTS   AGE
pod-busybox-command-args   1/1     Running   0          4s
删除pod
[root@Master ~]# kubectl delete pod pod-busybox-command-args
pod "pod-busybox-command-args" deleted

修改方式二:
[root@Master ~]# vim pod-busybox-command-args.yaml 
    command: ["/bin/sh","-c","sleep 3600"]
修改为
    args:
    - /bin/sh
    - -c
    - sleep 3600
    
[root@Master ~]# kubectl create -f pod-busybox-command-args.yaml 
pod/pod-busybox-command-args created
[root@Master ~]# kubectl get pods
NAME                       READY   STATUS    RESTARTS   AGE
pod-busybox-command-args   1/1     Running   0          4s
删除pod
[root@Master ~]# kubectl delete pod pod-busybox-command-args
pod "pod-busybox-command-args" deleted
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes 中部署 Hyperf 应用并安装 Composer 可以分为以下几个步骤: 1. 在本地构建 Docker 镜像。首先需要在本地构建 Hyperf 应用的 Docker 镜像,并在镜像中安装 Composer。可以使用 Dockerfile 来构建镜像,Dockerfile 中需要包含安装 Composer 的命令,例如: ``` FROM php:7.4-fpm-alpine # 安装 Composer RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer # 安装 Hyperf 应用 COPY . /app WORKDIR /app RUN composer install --no-dev CMD ["php", "bin/hyperf.php", "start"] ``` 2. 将 Docker 镜像推送到 Docker Hub 或其他 Docker 镜像仓库。可以使用以下命令将 Docker 镜像推送到 Docker Hub: ``` docker login docker tag your-image-name your-docker-hub-username/your-image-name docker push your-docker-hub-username/your-image-name ``` 这将会将 Docker 镜像推送到 Docker Hub 上,供 Kubernetes 使用。 3. 创建 Kubernetes 配置文件。可以使用 YAML 格式的文件来定义 Kubernetes 对象,包括 Deployment、Service、Pod 等等。在配置文件中需要指定 Hyperf 应用使用的镜像、端口、存储卷等信息,并在容器中安装 Composer。 ``` apiVersion: apps/v1 kind: Deployment metadata: name: your-deployment-name labels: app: your-app-name spec: replicas: 1 selector: matchLabels: app: your-app-name template: metadata: labels: app: your-app-name spec: containers: - name: your-container-name image: your-docker-hub-username/your-image-name ports: - name: http containerPort: 9501 volumeMounts: - name: your-volume-name mountPath: /app/storage command: - php - bin/hyperf.php - start args: - "-S" - "0.0.0.0:9501" volumes: - name: your-volume-name persistentVolumeClaim: claimName: your-pvc-name --- apiVersion: v1 kind: Service metadata: name: your-service-name labels: app: your-app-name spec: type: ClusterIP ports: - name: http port: 9501 targetPort: 9501 selector: app: your-app-name ``` 在容器中安装 Composer 可以使用上面提到的安装 Composer 的命令。 4. 应用 Kubernetes 配置文件。使用 kubectl 工具来应用配置文件,可以通过以下命令进行应用: ``` kubectl apply -f yourconfig.yaml ``` 这将会创建或更新 Kubernetes 对象,包括 Deployment、Service、Pod 等等。 5. 访问 Hyperf 应用。部署完成后,可以使用 Kubernetes Service 的 Cluster IP 来访问 Hyperf 应用。也可以使用 Kubernetes Ingress 来进行负载均衡和访问控制。 需要注意的是,在 Kubernetes 中部署 Hyperf 应用需要考虑到应用的资源需求和限制,如 CPU、内存、存储等等。可以通过 Kubernetes 的资源限制和调度策略来管理应用的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值