目 录CONTENT

文章目录

Kubernetes命令总结

所念皆星河
2020-01-06 / 0 评论 / 0 点赞 / 19 阅读 / 4419 字

查看CPU内存占用指标

🍓 节点占用
 Kubectl top nodes
🍓 pod占用
 Kubectl top pods -A 

pod操作命令

🍓 创建pod,ymal方式
 kubectl apply -f xxxx.yaml 
🍓 创建pod 命令
 kubectl run 名称 --image=镜像名称  
🍓 查询所有pod
 kubectl get pods  
🍓 查询指定名称空间pod
 kubectl get pods -n 名称空间    
🍓 查询pod带IP 节点信息
 kubectl get pod -owide     
🍓 删除pod
 kubectl delete pod Pod名字   
🍓 pod描述信息
 kubectl describe pod Pod名字   
🍓 pod日志信息
 kubectl logs Pod名字         
🍓 动态每秒查询状态信息
 watch -n 1 kubectl get pods  
🍓 动态打印pod状态变化信息
 kubectl get pods -w    
🍓 查看pod yml文件
 kubectl get pod/pod名称 -oyaml    
🍓 进入容器
 kubectl exec -it 容器名称 -- /bin/bash  
🍓 查看pod标签
 kubectl get pods –show-lables   
使用标签检索Pod
 kubectl get pod -l app=my-dep            

Namespace操作

🍓 创建
 kubectl create ns hello     
🍓 删除
 kubectl delete ns hello
🍓 查询
 kubectl get ns                        

Deployment操作

🍓 创建deployment
 kubectl create deployment 名称 --image=镜像名称
🍓 删除deploy
 kubectl delete deployment 名称
🍓 查询集群中的所有deploy      
 kubectl get  deployment
🍓 查询指定deploy状态            
 kubectl rollout status deployment/my-dep 
🍓 创建多副本 拥有自愈能力
 kubectl create deployment 名称 --image=镜像名称 --replicas=3
🍓 缩扩容 pod的数量
 kubectl scale --replicas=5 deployment/你创建的名称
 kubectl edit deployment my-dep    #修改 replicas
🍓 滚动更新pod版本
 kubectl set image deployment/my-dep nginx=nginx:1.16.1 –record                       
🍓 查看更新历史记录
 kubectl rollout history deployment/my-dep
🍓 查看某个历史详情
 kubectl rollout history deployment/my-dep --revision=2
🍓 回滚(回到上次)
 kubectl rollout undo deployment/my-dep
🍓 回滚(回到指定版本)
 kubectl rollout undo deployment/my-dep --to-revision=2
🍓 查看deployment ymal
 kubectl get deployment/名称 -oyaml

service服务

🍓 service服务暴露配置公共地址 默认内部集群地址
 kubectl expose deployment deploy名称 --port=8000 --target-port=80
🍓 service服务暴露配置公共地址 指定暴露为为节点IP以及port
 kubectl expose deployment my-dep --port=8000 --target-port=80 --type=NodePort
🍓 service删除服务暴露地址
 Kubectl delete service deploy名称
🍓 service域名规则,只能在容器内使用
 标签名称.名称空间.service   例如 my-app.default.service

Ingress规则

查看ingress规则

 kubectl get ingress 

域名转发规则

apiVersion: networking.k8s.io/v1
kind: Ingress  
metadata:
  name: ingress-host-bar
spec:
  ingressClassName: nginx
  rules:
  - host: "hello.atguigu.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: hello-server
            port:
              number: 8000
  - host: "demo.atguigu.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"  # 把请求会转给下面的服务,下面的服务一定要能处理这个路径,不能处理就是404
        backend:
          service:
            name: nginx-demo  ## java,比如使用路径重写,去掉前缀nginx
            port:
              number: 8000

修改规则

 Kubectl edit ingress  ingress名称 -n 名称空间

路径重写

apiVersion: networking.k8s.io/v1
kind: Ingress  
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: ingress-host-bar
spec:
  ingressClassName: nginx
  rules:
  - host: "hello.atguigu.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: hello-server
            port:
              number: 8000
  - host: "demo.atguigu.com"
    http:
      paths:
      - pathType: Prefix
        path: "/nginx(/|$)(.*)"  # 把请求会转给下面的服务,下面的服务一定要能处理这个路径,不能处理就是404
        backend:
          service:
            name: nginx-demo  ## java,比如使用路径重写,去掉前缀nginx
            port:
              number: 8000

流量限制

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-limit-rate
  annotations:
    nginx.ingress.kubernetes.io/limit-rps: "1"
spec:
  ingressClassName: nginx
  rules:
  - host: "haha.atguigu.com"
    http:
      paths:
      - pathType: Exact
        path: "/"
        backend:
          service:
            name: nginx-demo
            port:
              number: 8000
0
k8s

评论区