• K8S 整理


    kebectl 部署常用操作

    服务管理

    deployment、service、cronJob、ingress都是支持的

    # 创建及更新服务(yaml文件形式)
    kubectl apply -f web-click.yaml
    # 删除服务(配置文件形式)
    kubectl delete -f web-click.yaml
    # 删除服务
    kubectl delete deployment adc-web -n bigdatatt
    kubectl delete svc adc-web -n bigdata
    # 查看服务
    kubectl get deployment --namespace=bigdata
    kubectl get svc --namespace=bigdata
    kubectl get ingress --namespace=bigdata
    kubectl get cronjob smcheck-cronjob  -n bigdata
    # 查看具体pod详细信息
    kubectl describe pods adc-web-click-5f64b5fc-5v5n4 -n bigdata
    kubectl describe ingress adc-ingress -n bigdata
    

    pod信息

    # 包含pod运行的状态
    kubectl get pods --namespace=bigdata |grep adc
    # 显示详细信息 如ip
    kubectl get pods -o wide -n bigdata 	
    

    查看pod日志

    kubectl logs adc-web-click-5f64b5fc-6qs6w  -n bigdata
    

    cronjob临时执行

    构建job 从一个已有的cronjob载入配置执行

    # cronjob 通过get cronjobs获取
    kubectl create job check-test -n bigdata --from=cronjob/check-cronjob  --kubeconfig .kube/config
    

    job执行完可以删除pods,避免占用空间

    kubectl delete pod check-test-ldnfs -n bigdata
    

    问题排查

    查看容器进入容器环境

    kubectl exec -it [pod name] --container [container name] -n [namespace] [执行命令]
    

    kubectl exec -it callbackconsume-job-758874f99d-pgmtf --container adc-callback -n bigdata ls config/debug

    查看日志

    kubectl logs -f --tail=10 callbackconsume-job-758874f99d-pgmtf -n bigdata
    

    Ingress会有对应的ingress-controller对应pod,记录着ingress的访问日志;

     kubectl logs -f --tail=10 nginx-nginx-ingress-controller-7b85bf4f78-zsznw
    

    将pod分配给节点

    https://kubernetes.io/zh/docs/concepts/configuration/assign-pod-node/

    查看节点 显示标签

    kubectl get nodes --show-labels
    

    添加标签

    kubectl label nodes <node-name> <label-key>=<label-value>
    

    添加 nodeSelector 字段到 pod 配置中

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      labels:
        env: test
    spec:
      containers:
      - name: nginx
        image: nginx
        imagePullPolicy: IfNotPresent
      nodeSelector:
        disktype: ssd
    

    kubectl apply -f https://k8s.io/examples/pods/pod-nginx.yaml 命令,pod 将会调度到将标签添加到的节点上。

    可以通过运行 kubectl get pods -o wide 并查看分配给 pod 的 “NODE” 来验证其是否有效

    监控job

    kubectl get jobs --watch -n bigdata

    Replace "hello-4111706356" with the job name in your system

    pods=$(kubectl get pods --selector=job-name=smcheck-cronjob-1589540820 --output=jsonpath={.items[*].metadata.name})

    kubectl get pods --selector=job-name=smcheck-cronjob-1589540640

    smcheck-cronjob-1589536140y

    ingress使用

    ---
    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      namespace: bigdata
      name: adc-ingress
      annotations:
        ingress.kubernetes.io/rewrite-target: /
        kubernetes.io/ingress.class: "nginx"					# ingress指定nginx		
        nginx.ingress.kubernetes.io/server-snippet: |     # 设置nginx 服务脚本配置
            set $flag 0;
            if ( $uri = /click) {
              set $flag 1;
            }
            if ( $args ~ project=ios ) {
              set $flag 1$flag;
            }
            if ( $flag = 11 ) {
              rewrite ^/(.*) $uri-ios break;
            }
    spec:
      rules:
        - host: walking.sun.com
          http:
            paths:															# path对应nginx path
              - path: /click/google
                backend:
                  serviceName: google-srv       # 指定path 请求会转发到对应的svc
                  servicePort: 8080
              - path: /click-ios
                backend:
                  serviceName: web-ios-srv
                  servicePort: 8080
              - path: /click
                backend:
                  serviceName: web-srv
                  servicePort: 8080
        - host: walking.sun123.com
          http:
            paths:
              - path: /click/google
                backend:
                  serviceName: google-srv
                  servicePort: 8080
      tls:																			# 开发tls
        - hosts:
            - walking.sun.com
          secretName: sun.com
        - hosts:
            - walking.sun123.com
          secretName: sun123.com
    

    参考:http://nginx.org/en/docs/http/ngx_http_core_module.html#internal

  • 相关阅读:
    最近这段时间我,想在2008 的基础上,写2011 有的工具 不知道会样,这次又机会研究ploy
    Screen 可以查找屏幕pos系类的函数
    笔记1
    Ubuntu下如何安装 tar.bz2 文件
    安装ubuntu遇到“BusyBox”问题
    android luancher 如何添加快捷方式
    转 Android 源代码结构
    修改apk图标
    Linux Ubuntu 下如何安装 .SH文件
    解放你的电源键!!不用刷机不用装软件!超简单修改搜索锁屏、HOME键唤醒~~~~~
  • 原文地址:https://www.cnblogs.com/followyou/p/13592189.html
Copyright © 2020-2023  润新知