云原生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命令