kubectl Kubernetes

kubectl基本命令

Posted on 2020-10-15,3 min read

设置命令自动补全

# 首先下载这个命令,补全命令才能生效
yum install -y bash-completion
# 1、当前shell生效
yum install -y bash-completion


#2、总是会生效
# vi  .bashrc    (/etc/profile)
source <(kubectl completion bash)

source ~/.bashrc

对节点的操作

获取集群节点信息

kubectl get nodes  # 获取集群节点信息

# 输出不同的格式
kubectl get nodes -o wide
kubectl get nodes -o json
kubectl get nodes -o yaml

kubectl get nodes node2 -o wide # 查看某个节点的信息

增加节点

# 在主节点上master执行命令
# kubeadm token create --print-join-command
# node节点上执行上述命令输出的内容
kubeadm join apiserver.demo:6443 --token l9y210.bzx98ovq27i7an20     --discovery-token-ca-cert-hash sha256:274bcf2916f6c94b594098043aa697aef5137941b4e8f972f9183547d88323b3

移除节点

# 只在 worker 节点执行
kubeadm reset
# 只在 master 节点执行
kubectl delete node demo-worker-x-x

对节点标签进行操作

获取标签信息

kubectl get nodes --show-labels
kubectl get nodes node2 --show-labels # 查看某个节点的标签信息

添加标签

# 标签以key=value的形式存在

# 设置node2节点的label是  disktype: node2
kubectl label  nodes  node2 disktype:node2
#会输出 node2 labeled

kubectl get nodes node2 --show-labels
# 输出节点对应的内容  查看输出label内容   

删除标签

kubectk label nodes node2 disktype-
# 删除标签,只需要对应标签的key加减号(-)

设置角色

# 刚加入集群  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

kubectl  create -f xxx.yml

删除pod

kubectl delete -f xxx.yml

获取pod信息

kubectl get pods  # 获取当前名称空间的pod
kubectl get pods --namespace demo  # 获取指定名称空间的pod

进入指定pod的指定的容器内

#kubectl exec -it pod_name -c container_name sh
kubectl exec -it nginx -c nginx sh

namespace

获取命名空间

kubectl get namespace

创建命名空间

# kubectl create namespace namespace_name
kubectl create namespace demo

删除命名空间

# kubectl delete namespace namespace_name
kubectl delete namespace demo

创建一个指定命令空间的pod的yaml文件

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: demo  # 指定名称空间
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
kubectl create namespace demo # 创建对应的名称空间
kubectl create -f nginx_namespace.yml
kubectl get pods # 在当前名称空间查看pod,查找不到刚才创建的pod
kubectl get pods --namespace demo # 查看指定名称空间的pod

下一篇: 使用kubeadm快速部署一个K8s集群→