code: def _install_linkerd(self, kind_cluster: KindCluster) -> None:
      # linkerd < 2.12: only linkerd install is needed
      # in later versions, linkerd install --crds will be needed
      self._linkerd_install_cmd(
          kind_cluster,
          [f"{Path.home()}/.linkerd2/bin/linkerd", "install"],
          "Linkerd",
      )
  
      self._log.info("check linkerd status")
      try:
          out = subprocess.check_output(
              [f"{Path.home()}/.linkerd2/bin/linkerd", "check"],
              env=os.environ,
              stderr=subprocess.STDOUT,
          )
          print(
              f'linkerd check yields {out.decode() if out else "nothing"}'
          )
      except subprocess.CalledProcessError as e:
          print(
              f"linkerd check failed with error code { e.returncode } and output { e.output }, and stderr { e.stderr }"
          )
          raise
  
imports: import contextlib
  import os
  import subprocess
  import tempfile
  import time
  from pathlib import Path
  from typing import Dict, List
  import docker
  import pytest
  from pytest import FixtureRequest
  from pytest_kind import KindCluster
  from jina.logging.logger import JinaLogger
label_desc: Use image node_id 3 for calling the KindClusterWrapper obj's underlying member method code with example usage: obj._install_linkerd(kind_cluster) without return types