常用命令
清除exit容器
sudo docker rm `docker ps -a|grep Exited|awk ' {print $1}'`
查看kube当前配置
# 查看所有模块
kubectl get configmaps -A
kubectl get cm -A
# 查看kube-proxy配置
kubectl get cm kube-proxy -n kube-system -o yaml
查看api版本
kubectl api-versions
查看现有namespace
kubectl get namespace
node
# 打印所有节点
kubectl get nodes
kubectl get nodes -o wide
# 打印节点详细信息
kubectl describe nodes
kubectl describe node <node name>
service
# service可简写为svc
kubectl get service
kubectl get service -o wide
deployment
# deployment可简写deploy
kubectl get deployment
kubectl get deployment -o wide
pod
# 打印pod
kubectl get pods
kubectl get pods -o wide
# 打印kube-system命名空间内的pods
kubectl get pods -o wide -n kube-system
# 动态监控pods状态
kubectl get pods -w
# 打印pods详细信息
kubectl describe pods
kubectl describe nodes <pod name>
# 查看更详细
kubectl get all
查看calico pods状态
kubectl get pod -n kube-system -o wide | grep calico
pod部署
命令行部署pod示例
kubectl create deployment nginx-app --image=nginx --replicas 2
kubectl expose deployment nginx-app --name=nginx-web-svc --type NodePort --port 80 --target-port 80
# 查看服务
# kubectl describe service nginx-web-svc
kubectl describe svc nginx-web-svc
删除pods
# 删除deployment
kubectl delete deploy nginx-app
# 删除service
kubectl delete svc nginx-web-svc
使用yaml文件创建pod
# kubectl api-versions 查看版本
# mkdir demo
# cd demo
# vim nginx-deployment.yaml
apiVersion: apps/v1 # api版本
kind: Deployment # 类型 控制器
metadata: # 摘要信息描述
name: nginx-deployment
labels: # 标签
app: nginx
spec: # 选择器
replicas: 3 # 定义副本数量
selector:
matchLabels: # 匹配标签
app: nginx
template: # 模板
metadata:
labels:
app: nginx
spec:
containers: # 定义容器
- name: nginx # 容器名称
image: nginx:1.15.4 # 选择镜像
ports:
- containerPort: 80 # 容器端口
# 通过执行yaml文件 进行pod资源的创建
# kubectl create -f nginx-deployment.yaml
# kubectl get pods
使用yaml创建service,才能对外提供服务
# vim nginx-service.yaml
apiVersion: v1 # API版本
kind: Service # service类型
metadata:
name: nginx-service # serivice资源名称
labels:
app: nginx
spec:
type: NodePort # 指明哪种类型发布出去,对外提供服务
ports:
- port: 80 # 指定内部端口80
targetPort: 80 # 对外提供映射端口80
selector: # 选择器
app: nginx # 指的是pod资源名称,要把哪个资源发布出去
# 创建service服务
# kubectl create -f nginx-service.yaml
# kubectl get svc
Kube-Proxy
查看kube-proxy当前运行配置
# 查看kube-proxy
kubectl get configmaps kube-proxy -n kube-system -o yaml
kubectl get cm kube-proxy -n kube-system -o yaml
模板
我们常常会因为层级格式的错误导致创建不成功,如少个空格,或者多个空格,不过 yaml文件格式和json文件格式是可以通过kubectl命令导出模板,我们就可通过模板进行修改
(1)根据创建命令导出模板
# 自测命令的正确性,并不执行创建
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run
# 查看生成json格式,并不执行创建
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json
# 查看生成yaml格式,并不执行创建
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml
# 查看生成yaml格式,并不执行创建, 并保存到my-deployment.yaml文件
kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml > my-deployment.yaml
(2)可根据现有的pod资源生成模板导出yaml或者json文件
# 将现有的资源生成模板导出
kubectl get deploy/nginx-deployment --export -o yaml
# 将现有的资源生成模板导出,并保存到文件中
kubectl get deploy/nginx-deployment --export -o yaml > my-deploy.yaml