kubectl入门命令
kubectl入门命令二、常用命令target简称1.帮助2.管理员3.service4.pods5.deployment查看创建、修改6.资源管理7.交互命令8.日志三、扩展1.hosts配置2.常用工具包3.arthas参考:choco 使用详解kubectl windowk8s——三种IP地址......
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
二、可视化工具
Lens
Lens 是为那些每天使用 Kubernetes 的人设计的 IDE。它可以探索和导航 Kubernetes 集群,而无需学习 kubectl 命令,实时检查实时统计信息、事件和日志流。
它将所有集群、服务、工作负载、工具、自动化和相关资源整合在一起,以便于访问。Lens 与 Prometheus 集成,可视化并查看资源使用指标的趋势,包括 CPU、内存、网络和磁盘,以及总容量、实际使用情况、请求和限制。每个 k8s 资源都会自动生成详细的可视化信息。
Lens 带有 Helm 图表管理,允许发现和快速部署数千个公开可用的 Helm 图表并管理自己的存储库。浏览已安装的 Helm 图表及其修订版,只需单击一下即可升级。
Lens 是适用于 MacOS、Windows 和 Linux 操作系统的独立应用程序。
三、 常用命令
默认 --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
kubectl -n my-namespace cp nginx-9f577f598-rj427:data/logs/app.log app.log --retries=-1
- 压缩日志文件并复制到本地
kubectl -n my-namespace exec -it nginx-9f577f598-rj427 -- /bin/bash
tar -czvf filename.tar.gz directory/file1 directory/file2 ...
kubectl -n my-namespace cp ginx-9f577f598-rj427:data/filename.tar.gz filename.tar.gz --retries=-1
- 前一个容器的崩溃日志
使用
--previous
可以看到前一个容器的日志
使用describe
查看容器详情,可以通过Last State
、Events
- 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'
更多推荐
所有评论(0)