美文网首页
k8s大集群仿真

k8s大集群仿真

作者: wwq2020 | 来源:发表于2024-01-05 16:24 被阅读0次

    背景

    当k8s集群规模大时候会有很多问题,比如调度问题

    安装kwok

    brew install kwok
    KWOK_REPO=kubernetes-sigs/kwok
    KWOK_LATEST_RELEASE=$(curl "https://api.github.com/repos/${KWOK_REPO}/releases/latest" | jq -r '.tag_name')
    kubectl apply -f "https://github.com/${KWOK_REPO}/releases/download/${KWOK_LATEST_RELEASE}/kwok.yaml"
    kubectl apply -f "https://github.com/${KWOK_REPO}/releases/download/${KWOK_LATEST_RELEASE}/stage-fast.yaml"
    

    创建集群

    kwokctl create cluster --name=demo
    kubectl config use-context kwok-demo
    

    创建node

    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: Node
    metadata:
      annotations:
        node.alpha.kubernetes.io/ttl: "0"
        kwok.x-k8s.io/node: fake
      labels:
        beta.kubernetes.io/arch: amd64
        beta.kubernetes.io/os: linux
        kubernetes.io/arch: amd64
        kubernetes.io/hostname: kwok-node-0
        kubernetes.io/os: linux
        kubernetes.io/role: agent
        node-role.kubernetes.io/agent: ""
        type: kwok
      name: kwok-node-0
    spec:
      taints: # Avoid scheduling actual running pods to fake Node
      - effect: NoSchedule
        key: kwok.x-k8s.io/node
        value: fake
    status:
      allocatable:
        cpu: 32
        memory: 256Gi
        pods: 110
      capacity:
        cpu: 32
        memory: 256Gi
        pods: 110
      nodeInfo:
        architecture: amd64
        bootID: ""
        containerRuntimeVersion: ""
        kernelVersion: ""
        kubeProxyVersion: fake
        kubeletVersion: fake
        machineID: ""
        operatingSystem: linux
        osImage: ""
        systemUUID: ""
      phase: Running
    EOF
    

    创建pod

    kubectl apply -f - <<EOF
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: fake-pod
      namespace: default
    spec:
      replicas: 10
      selector:
        matchLabels:
          app: fake-pod
      template:
        metadata:
          labels:
            app: fake-pod
        spec:
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: type
                    operator: In
                    values:
                    - kwok
          # A taints was added to an automatically created Node.
          # You can remove taints of Node or add this tolerations.
          tolerations:
          - key: "kwok.x-k8s.io/node"
            operator: "Exists"
            effect: "NoSchedule"
          containers:
          - name: fake-container
            image: fake-image
    EOF
    

    补充

    获取集群
    kwokctl get clusters
    删除集群
    kwokctl delete cluster --name=demo
    

    相关文章

      网友评论

          本文标题:k8s大集群仿真

          本文链接:https://www.haomeiwen.com/subject/gskindtx.html