K8s命令

命令

描述

kubeadm init \

--apiserver-advertise-address=192.168.43.23 \

--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \

--kubernetes-version v1.19.0 \

--service-cidr=10.96.0.0/16 \

--pod-network-cidr=10.244.0.0/16 \

--ignore-preflight-errors=all

初始化master

# service-cidr: service的网段

# pod-network-cidr: pod的网段

也可以通过配置文件的方式初始化

kubeadm join 192.168.43.23:6443 --token el5q0h.ol84kidb0fhlusp9 \

--discovery-token-ca-cert-hash sha256:dae5c056947982c4e5463a4e450786ab248e88e91ee45b2a7bf8dba44dad22e2

[node]节点执行,加入到master中

kubectl ... -n ms

命令参考地址:http://docs.kubernetes.org.cn/683.html

-n ms 命名空间为ms

kubectl apply -f dashboard.yaml

应用并刷新yaml文件中的控制器、service等

kubectl create namespace ms

创建命名空间

kubectl expose deployment xxl-admin --port=80 --target-port=80 --type=NodePort

使用Service暴露服务:

--port=80 k8s集群内部可以访问这个应用的端口。通过节点ip和此端口,来访问此应用

--target-port=80 容器pod里面提供服务的端口,如nginx是80,tomcat是8080

--type=NodePort 暴露到集群外部的端口

kubectl create deployment xxl-admin --image=chenchg/xxl-admin --replicas=3

通过命令行创建Deployment

kubectl create deployment xxl-admin --image=chenchg/xxl-admin --replicas=3 --dry-run -o yaml > web.yaml

--dry-run 尝试运行,但实际不会创建控制器

-o yaml > web.yaml 将当前通过命令行的方式用yaml文件导出来,存储在web.yaml中

kubectl get nodes

[master]获取节点信息

kubectl get pods,service

获取Pods容器、service暴露信息。-n 限定命名空间

kubectl get endpoints -n ms

查看service关联的pod容器ip地址

kubectl get pod,svc,ep

同时查看三个信息:svc同service,ep同endpoints

kubectl exec -ti <POD NAME> -n <NAMESPACE> -- /bin/sh

进入k8s容器

如:kubectl exec -ti ccg-dkdemo-646b599f6c-6cn48 -- /bin/sh

$ tail -200f /data/applogs/ccg-log/dkdemo.log

$ exit #退出容器

kubectl scale deployment <DEPLOYMENT NAME> --replicas=6

命令行,扩容

kubectl set image deployment <DEPLOYMENT NAME> <CONTAINER NAME>=<IMAGE NAME>:1.1.0 --record=true

发布升级

eg: kubectl set image deployment ccg-dkdemo ccg-dkdemo=chenchg/ccg-dkdemo:1.1.0 --record=true

<DEPLOYMENT NAME> 对应yaml中的deployment的name

<CONTAINER NAME> 对应yaml中container中的name

<IMAGE NAME> 对应yaml中container中的imagename

kubectl rollout undo deployment/web

回滚到上一个版本

kubectl rollout undo deployment/web to --to-verision=2

回滚到指定版本

journalctl -u kubelet

查看kubelet日志

kubectl describe deployment web -n ms

查看控制器日志

kubectl describe pod xxl-admin-8467776cb9-xb6lc

查看pod信息。

当前pod指向哪个node信息:

Normal Scheduled 9m41s default-scheduler Successfully assigned default/ccg-dkdemo-84c6f7cfd9-5zvpg to node1

kubectl logs <POD NAME>

查看pod容器的日志,如:

kubectl logs xxl-admin-8467776cb9-cb6zz

kubectl delete deployment <DEPLOYMENT NAME>

kubectl delete deployment <DEPLOYMENT NAME1> <DEPLOYMENT NAME2>

删除deployment控制器,如 kubectl delete deployment xxl-admin

删除多个Deployment控制器

kubectl delete service <SERVICE NAME>

删除service

kubectl delete service xxl-admin

kubectl delete -f yamls/web.yaml

删除yaml文件中所有的deployment和service

kubectl delete pod <POD NAME>

kubectl delete pod <POD NAME> --force

删除pod后,deployment控制器会发现没有了,又会再次生成pod。所以直接删除pod没有用。

可用于pod创建失败时,状态一直是Terminating,可使用此删除。--force强制删除

<think>好的,我现在需要帮助用户查找与Kubernetes相关的命令列表及用法。根据用户提供的引用资料,我需要整理这些信息,并确保符合用户的要求。首先,用户提到了多个引用,其中引用[2]和引用[3]详细列出了kubectl的命令分类和具体子命令,而引用[4]和引用[5]则提供了创建Pod和添加hosts解析的示例。我需要将这些信息系统地组织起来,让用户能够清晰地了解不同命令的类别和用途。 首先,我应该按照命令的分类来划分,比如基本命令、运行和调试命令、高级命令等,这样用户查找起来更方便。引用[3]已经将命令分成了基本命令、运行和调试、高级命令和其他命令,这可能是一个很好的结构。接下来,我需要确保每个命令都有简短的说明,并引用对应的参考资料,比如引用[2]或引用[3]来支持这些分类和描述。 另外,用户可能需要具体的用法示例,比如如何使用kubectl create或kubectl apply。引用[4]中提到了使用YAML文件创建资源的方法,比如pod - def.yaml,以及kubectl run创建Pod的例子。这些示例需要被包含在相应的命令解释中,帮助用户理解如何实际操作。 同时,用户可能对如何查看资源状态、调试容器等常见操作感兴趣,比如使用kubectl describe、kubectl logs等命令。引用[3]中提到的describe、logs、exec等命令都属于运行和调试类别,这部分需要详细说明每个命令的作用和示例。 需要注意的是,用户要求回答中引用的段落末尾自然地添加引用标识,例如[^1]。因此,在整理每个命令或示例时,必须确认其对应的引用来源,并正确标注。例如,命令分类的信息来自引用[3],创建资源的部分来自引用[4],hosts解析来自引用[5]等。 此外,用户可能希望了解如何组合使用这些命令,或者在不同场景下应该使用哪些命令。比如,创建资源时可以选择create或apply,而调试时可能需要logs和exec的组合。在整理过程中,需要考虑到这些实际应用场景,给出相应的建议和示例。 最后,生成的相关问题需要围绕用户可能进一步询问的方向,比如如何创建特定资源、如何调试Pod中的容器、如何扩展应用实例数量等。这些问题应该基于提供的引用内容,确保答案在现有资料中有据可依。 总结下来,我的回答结构应该是: 1. 分类列出Kubernetes命令,如基本命令、运行与调试、高级命令等,每个类别下列出具体命令及其用途,并标注引用来源。 2. 提供常用命令的具体用法示例,如create、apply、run等,结合引用中的YAML文件和命令行示例。 3. 添加其他实用技巧,如hosts解析的设置方法,引用[5]中的内容。 4. 生成相关问题,引导用户深入了解具体命令的使用或场景应用。 需要确保所有命令和示例正确无误,引用标记准确,并且语言简洁明了,符合中文表达习惯。同时,避免使用任何Markdown格式,保持回答的自然流畅。</think>### Kubernetes 命令列表及用法 #### 一、命令分类与功能 1. **基本命令** - `create`:通过文件或输入创建资源,例如: ```bash kubectl create -f pod-def.yaml # 使用YAML文件创建Pod[^4] ``` - `get`:查看资源状态,如`kubectl get pods` - `delete`:删除资源,如`kubectl delete pod nginx` - `edit`:直接编辑资源配置 - `explain`:查看资源文档(如字段说明)[^3] 2. **运行与调试命令** - `logs`:查看容器日志,例如: ```bash kubectl logs nginx-pod -c nginx-container # 查看指定Pod内容器的日志 ``` - `exec`:在容器内执行命令,如: ```bash kubectl exec -it nginx-pod -- /bin/bash # 进入Pod的交互式终端 ``` - `describe`:显示资源详细信息(如事件、状态),例如: ```bash kubectl describe pod nginx-pod # 诊断Pod启动失败原因 ``` 3. **高级命令** - `apply`:通过文件声明式管理资源(推荐用于生产环境): ```bash kubectl apply -f deployment.yaml # 创建或更新资源 ``` - `scale`:手动扩缩容,如: ```bash kubectl scale deployment/nginx --replicas=3 # 将实例数调整为3 ``` 4. **快速操作命令** - `run`:快速启动临时Pod: ```bash kubectl run nginx --image=nginx # 创建一个运行nginx镜像的Pod ``` #### 二、实用示例 1. **通过YAML创建资源** 编写`deployment.yaml`后执行: ```bash kubectl apply -f deployment.yaml # 创建Deployment ``` 2. **添加本地Hosts解析** 在Pod配置中添加: ```yaml hostAliases: - ip: 192.168.1.135 hostnames: - "test.app.com" # 自定义域名解析[^5] ``` 3. **资源暴露与访问** ```bash kubectl expose deployment nginx --port=80 # 将Deployment暴露为Service ``` #### 三、命令语法结构 通用格式: ```bash kubectl [command] [资源类型] [名称] [flags] ``` - **示例**: ```bash kubectl get pods -n default # 查看default命名空间的Pod[^2] ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值