Browsed by
标签:kubernetes

Kubernetes控制命令kubectl汇总

Kubernetes控制命令kubectl汇总

kubectl 作为Kubernetes集群管理的命令行工具,经常用到的几个子命令包括:

  • kubectl get – list resources
  • kubectl describe – show detailed information about a resource
  • kubectl logs – print the logs from a container in a pod
  • kubectl exec – execute a command on a container in a pod

按类型分

集群状态

kubectl cluster-info

get 获取信息

kubectl get nodes
kubectl get deployments
kubectl get pods
# 更详细的信息
kubectl get pods -o wide
kubectl get componentstatuses

logs 获取容器日志

POD_NAME=$(kubectl get pods -l run=nginx -o jsonpath="{.items[0].metadata.name}")
kubectl logs $POD_NAME

exec 在容器执行命令

kubectl exec -ti -- $POD_NAME <command>

配置

# 基于配置文件创建pod
kubectl create -f <config.yaml>
# 创建其他资源
kubectl create secret generic kubernetes-bootcamp --from-literal="mykey=mydata"

按使用场景

部署容器镜像

## 部署
kubectl run <deployment name>  —image=<full url>  —port=8080
# 例如
kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080
kubectl run busybox --image=busybox

# 检查
kubectl get deployments
# 使用标签过滤
kubectl get pods -l run=busybox

## 升级
kubectl set image ...

暴露服务

# 使API Server监听本地的8001端口
kubectl proxy
# 使用NodePort服务方式暴露部署
kubectl expose deployment nginx --port 80 --type NodePort
# 标签标记
kubectl label
# 检查
kubectl get services

自动扩容

kubectl scale <deployment>  —replicas=5

升级及回滚

kubectl rollout status …
kubectl rollout undo <deployment>