Skip to content

云原生06-kubectl

kubectl run

例1

创建一个名字为nginx的pod,使用刚上传到xuegod64和xuegod62上刚上传的nginx:latest镜像,--port =暴露容器端口·80·。

# 
kubectl run --image=docker.io/library/nginx:latest --port=80 --image-pull-policy=IfNotPresent
  • 不创建pod方式生成yaml文件
$ kubectl run nginx --image=nginx --image-pull-policy='IfNotPresent' --port=80 -o yaml --dry-run=client > 2.yaml

kubectl get

根据pod生成 yaml 文件

$ kubectl get pods -o yaml>1.yaml

kubectl delete

删除 pod

$ kubctl delete pod ..

强制删除

$ kubectl delete pod .. --force --grace-period=0

kubectl get pod

查看 Pod

yaml 语法规则

YAML·语言(发音·/jemal/·)的设计目标,就是方便人类读写。它实质上是一种通用的数据串行 化格式。 1.pod资源yaml配置文件常见单词: kind:同类,类型· apiVersion···API版本··; metadata··元数据·; spec:规格,说明书(定义具体参数)

kubectl 其他常用命令和参数说明

命令 说明 logs→取得pod中容器的log信息 exec>→在pod中执行一条命令 cp →→从pod拷出或向pod拷入文件

kubectl exec

  • vim pod-exec.yaml
apiVersion: v1
kind: Pod
metadata:
  name: demo-exec
  namespace: default
  labels:
    app: busybox
    env: pro
spec:
  nodeName: xuegod64
  containers:
    - name: busybox
      image: busybox
      imagePullPolicy: IfNotPresent
      command: ["/bin/sh", "-c", "sleep 3600"]
$ kubectl exec -ti demo-exec -- cat /etc/hosts
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
# Kubernetes-managed hosts file.
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.250.209.160  demo-exec
  • 进入 pod

    $ kubectl exec -ti demo-exec -- sh
    # 选择某个容器进入
    $ kubectl exec -ti demo-exec -c busybox -- sh
    

  • 查看其yaml

    $ kubectl get pod demo-exec -o yaml
    

kubectl cp

拷贝

# 从 pod 拷贝文件到本地
$ kubectl cp demo-exec:/etc/hosts /tmp/hosts
tar: removing leading '/' from member names
# 会报上面警告,容器内最好用相对目录
$ kubectl cp demo-exec:etc/hosts /tmp/hosts
$ cat /tmp/hosts 
# Kubernetes-managed hosts file.
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.250.209.160  demo-exec

如果拷贝不成功,需要在容器中装tar命令,因为有些容器默认不带tar命令

Comments