kubectl入门命令

kubectl入门命令

一、 kubectl window Client

powershell以管理员身份运行

  • 安装kubectl client
choco install kubernetes-cli
kubectl version --client
  • 启用kubectl 命令自动补全
Set-ExecutionPolicy -Scope CurrentUser
RemoteSigned
A
kubectl completion powershell >> $PROFILE
  • 动态切换context

用途:~.kube\config配置文件中配置了多个k8s集群,可通过以下命令随时切换k8s集群

kubectl config current-context
kubectl config use-context docker-desktop
kubectl config current-context

二、 常用命令

默认 --kubeconfig=config

  • target简称

statefulsets=>sts

services=>svc

pods=>po

configmaps=>cm

limitranges=>ing

persistentvolumes=>pv

persistentvolumeclaims=>pvc

1. 帮助

kubectl get -h
kubectl explain pods

2. 管理员

kubectl get namespaces
kubectl get node
kubectl get statefulsets

3. service

kubectl -n my-namespace get services |grep nginx
kubectl -n my-namespace get service -o wide nginx
kubectl -n my-namespace get service -o yaml nginx
kubectl -n my-namespace describe service nginx
  • 新增、修改服务端口号
kubectl -n my-namespace edit svc/nginx

4. pods

kubectl -n my-namespace get pods
kubectl -n my-namespace logs -f nginx-9f577f598-rj427
kubectl -n my-namespace delete pod nginx-9f577f598-rj427
kubectl -n my-namespace describe pod ginx-9f577f598-rj427
  • 前一个容器的崩溃日志

使用 --previous可以看到前一个容器的日志
使用 describe 查看容器详情,可以通过Last StateEvents

  • 137有特殊的含义,表示该进程由外部信号终止
  • 数字137是两个数字的总和:128+x,其中x是终止进程的信号编号。在这个例子中, x等于9,这是SIGKILL的信号编号,意味着这个进程被强行终止
kubectl -n my-namespace describe pod ginx-9f577f598-rj427 --previous
kubectl -n my-namespace describe pod ginx-9f577f598-rj427
  • 强制删除pod
kubectl -n my-namespace delete pod nginx-9f577f598-rj427 --force --grace-period=0

参考:
KUBERNETES:24—POD托管(LIVENESSPROBE存活探针:HTTP GET探针、TCP套接字探针、EXEC探针)

5. deployment

  • 查看
kubectl -n my-namespace get deployments
kubectl -n my-namespace get deployment nginx
  • 创建、修改
kubectl -n my-namespace apply -f nginx.yaml
kubectl -n my-namespace edit deployment nginx
kubectl -n my-namespace scale deployment nginx --replicas=1

6. 资源管理

kubectl -n my-namespace get cm
kubectl -n my-namespace get ing
kubectl -n my-namespace get pv
kubectl -n my-namespace get pvc

7. 交互命令

kubectl -n my-namespace exec -it nginx-9f577f598-rj427 -- /bin/sh
kubectl -n my-namespace exec -it nginx-9f577f598-rj427 -- top
  • 复杂命令
kubectl -n my-namespace exec nginx-9f577f598-rj427 -- bash -c 'echo $HOME'

8. 日志

kubectl -n my-namespace logs -f nginx-9f577f598-rj427 |grep -C 10 "短信发送失败"

三、 扩展

1. hosts配置

cat >> /etc/hosts << EOF
192.168.1.100 cas.example.org
EOF

2. 常用工具包

apt-get update
apt-get install -y iputils-ping
apt-get install -y telnet
apt-get install -y curl
apt-get install -y wget
apt-get install -y aria2

3. arthas

apt-get install -y aria2
aria2c https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

4. tcpdump

tcpdump -i any host 192.168.1.100 and dst port 80 -w all.pcap

5. kebuctl快捷命令

  • cmd或Cmder

找到HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor,右键新建-字符串值,名为AutoRun,值为C:\cmd-alias.bat,保存退出。
新建C:\cmd-alias.bat文件,内容如下
@doskey kubectl-admin=kubectl --kubeconfig=C:/Users/admin/.kube/admin.kubeconfig $*

  • linux模拟终端(可结合MobaXterm宏脚本)
    alias kubectl-admin='kubectl --kubeconfig=C:/Users/admin/.kube/admin.kubeconfig'

参考:
choco 使用详解
kubectl window
k8s——三种IP地址
windows自定义快捷命令

你可能感兴趣的:(常用,#,docker容器及K8S,kubernetes,运维,容器)