k8s简单部署示例

1 部署yaml文件

1.1 Deployment部署

apiVersion: apps/v1
kind: Deployment
metadata:
  name: zscore
  namespace: wangzy-p
  labels:
    app: zscore-dep
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zscore
  template:
    metadata:
      labels:
        app: zscore
      annotations:
        sidecar.istio.io/inject: "false"  #如果有istio,取消sidebar注入
    spec:
      containers:
      - name: zscore
        image: registry.cn-hangzhou.aliyuncs.com/rory/kubeflow1:zscore-v1
        ports:
        - containerPort: 5006
        imagePullPolicy: Always
        command: ["/bin/bash","-c"]
        args: ["bash deploy.sh && sleep infinity"]

1.2 Service部署

apiVersion: v1
kind: Service
metadata:
  name: zscore-svc
  namespace: wangzy-p
spec:
  type: NodePort
  selector:
    app: zscore
  ports:
    - port: 5006
      targetPort: 5006
      nodePort: 32352

2 常见问题:

2.1 k8s中command、args和dockerfile中entrypoint、cmd之间的作用

  • 如果command和args均没有写,那么用DockerFile默认的配置。
  • 如果command写了,但args没有写,那么Docker默认的配置会被忽略而且仅仅执行.yaml文件的command(不带任何参数的)。
  • 如果command没写,但args写了,那么Docker默认配置的ENTRYPOINT的命令行会被执行,但是调用的参数是.yaml中的args。
  • 如果如果command和args都写了,那么Docker默认的配置被忽略,使用.yaml的配置。

2.2 /bin/bash -c 的意思

-c 在 bash 手册中的解释:
-c string If the -c option is present, then commands are read from string. If there are arguments after the string, they are assigned to the positional parameters, starting with $0.

也就是说,-c 命令表示后面的参数将会作为字符串读入作为执行的命令。

举个例子,尝试在本地执行下面两个命令:

/bin/bash -c ls
/bin/bash ls

在这里插入图片描述
可以看到, /bin/bash -c 后面接 命令 ,而 /bin/bash 后面接 执行的脚本。

参考资料:
https://www.jianshu.com/p/bb8e9d366a5c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值