设置命令自动补全
代码语言:javascript复制# 首先下载这个命令,补全命令才能生效
yum install -y bash-completion
# 1、当前shell生效
yum install -y bash-completion
#2、总是会生效
# vi .bashrc (/etc/profile)
source <(kubectl completion bash)
source ~/.bashrc
对节点的操作
获取集群节点信息
代码语言:javascript复制kubectl get nodes # 获取集群节点信息
# 输出不同的格式
kubectl get nodes -o wide
kubectl get nodes -o json
kubectl get nodes -o yaml
kubectl get nodes node2 -o wide # 查看某个节点的信息
增加节点
代码语言:javascript复制# 在主节点上master执行命令
# kubeadm token create --print-join-command
# node节点上执行上述命令输出的内容
kubeadm join apiserver.demo:6443 --token l9y210.bzx98ovq27i7an20 --discovery-token-ca-cert-hash sha256:274bcf2916f6c94b594098043aa697aef5137941b4e8f972f9183547d88323b3
移除节点
代码语言:javascript复制# 只在 worker 节点执行
kubeadm reset
# 只在 master 节点执行
kubectl delete node demo-worker-x-x
对节点标签进行操作
获取标签信息
代码语言:javascript复制kubectl get nodes --show-labels
kubectl get nodes node2 --show-labels # 查看某个节点的标签信息
添加标签
代码语言:javascript复制# 标签以key=value的形式存在
# 设置node2节点的label是 disktype: node2
kubectl label nodes node2 disktype:node2
#会输出 node2 labeled
kubectl get nodes node2 --show-labels
# 输出节点对应的内容 查看输出label内容
删除标签
代码语言:javascript复制kubectk label nodes node2 disktype-
# 删除标签,只需要对应标签的key加减号(-)
设置角色
代码语言:javascript复制# 刚加入集群 node的角色定义是none,我们可以查看master的标签,查看角色对应的label
kubectl get nodes master --show-labels
#会看到 node-role.kubernetes.io/master= 这样的一个标签
# 修改对应的角色即可
#将node1,node2的角色定义为worker
kubectl label nodes node1 node-role.kubernetes.io/worker=
kubectl label nodes node2 node-role.kubernetes.io/worker=
对pod的操作
创建pod
代码语言:javascript复制kubectl create -f xxx.yml
删除pod
代码语言:javascript复制kubectl delete -f xxx.yml
获取pod信息
代码语言:javascript复制kubectl get pods # 获取当前名称空间的pod
kubectl get pods --namespace demo # 获取指定名称空间的pod
进入指定pod的指定的容器内
代码语言:javascript复制#kubectl exec -it pod_name -c container_name sh
kubectl exec -it nginx -c nginx sh
namespace
获取命名空间
代码语言:javascript复制kubectl get namespace
创建命名空间
代码语言:javascript复制# kubectl create namespace namespace_name
kubectl create namespace demo
删除命名空间
代码语言:javascript复制# kubectl delete namespace namespace_name
kubectl delete namespace demo
创建一个指定命令空间的pod的yaml文件
代码语言:javascript复制apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: demo # 指定名称空间
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
代码语言:javascript复制kubectl create namespace demo # 创建对应的名称空间
kubectl create -f nginx_namespace.yml
kubectl get pods # 在当前名称空间查看pod,查找不到刚才创建的pod
kubectl get pods --namespace demo # 查看指定名称空间的pod
下一篇: 使用kubeadm快速部署一个K8s集群→