# kubia.manual.yaml
apiVersion: v1
kind: Pod
metadata:
name: kubia-manual
spec:
containers:
- image: luksa/kubia
name: kubia
imagePullPolicy: Never
ports:
- containerPort: 8080
protocol: TCP
kubectl create -f kubia.manual.yaml
kubectl get po kubia-manual -o yaml
kubectl get po kubia-manual -o json
kubectl get pods
kubectl logs kubia-manual
kubectl logs kubia-manual -c kubia
以下命令能够将本地机器的端口8888转发到pod的端口8080
kubectl port-forward kubia-manual 8888:8080
apiVersion: v1
kind: Pod
metadata:
name: kubia-manual-v2
labels:
creation_method: manual
env: prod
spec:
containers:
- image: luksa/kubia
name: kubia
imagePullPolicy: Never
ports:
- containerPort: 8080
protocol: TCP
kubectl create -f kubia-manual-with-labels.yaml
上述文件中的以下部分将两个标签附加到pod上:
labels:
creation_method: manual
env: prod
kubectl get po --show-labels
kubectl get po -L creation_method,env
kubectl label po kubia-manual creation_method=manual
kubectl label po kubia-manual-v2 env=debug --overwrite
列举creation_method=manual的所有pod
kubectl get po -l creation_method=manual
列举包含env标签的所有pod
kubectl get po -l env
列举没有env标签的所有pod
kubectl get po -l ‘!env’
向节点添加标签
kubectl label node xxx gpu=true
通过标签选择器列出节点
kubectl get nodes -l gpu=true
apiVersion: v1
kind: Pod
metadata:
name: kubia-gpu
spec:
nodeSelector:
gpu: "true"
containers:
- image: luksa/kubia
imagePullPolicy: Never
name: kubia
上述文件中,我们在spec部分添加了一个nodeSelector字段。当我们创建该pod时,调度器将只在包含标签gpu =true的节点中选择。
kubectl annotate pod kubia-manual mycompany.com/someannotation=“foo bar”
kubectl get ns
注意当我们使用kubectl命令列出资源时,只是展示default命名空间下的对象。
kubectl get po --namespace kube-system
or
kubectl get po -n kube-system
custom-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: custom-namespace
kubectl create -f custom-namespace.yaml
kubectl create namespace custom-namespace
kubectl create -f kubia-manual.yaml -n custom-namespace
kubectl delete po xxx
kubectl delete po -l creation_method=manual
kubectl delete ns custom-namespace
kubectl delete all --all
命令中的第一个 all 指定正在删除所有资源类型, 而 --all 选项指定将删除所有资源实例而不是按名称指定它们。