首页 > 技术文章 > Dapr+Kubernetes 实战一

mschen 2022-03-20 13:05 原文

一. 在 Windows 上安装 kubectl

创建目录:kubectl

New-Item -Path 'c:\' -Name 'kubectl' -ItemType Directory -Force

进入目录:下载二进制包,注意:powershell 中使用curl.exe 或 Invoke-WebRequest

curl.exe -LO "https://dl.k8s.io/release/v1.23.0/bin/windows/amd64/kubectl.exe"

 

二. 将 kubectl 二进制文件夹附加或添加到您的PATH环境变量中

 

 

三.测试以确保版本kubectl与下载的相同:

kubectl version --client

或者使用它来查看版本的详细信息:

kubectl version --client --output=yaml     

注意: Docker Desktop for Windows添加了自己的kubectlto版本PATH如果您之前安装过 Docker Desktop,您可能需要将您的PATH条目放在 Docker Desktop 安装程序添加的条目之前,或者删除 Docker Desktop 的kubectl.

 

四.验证 kubectl 配置

为了让 kubectl 找到和访问 Kubernetes 集群,它需要一个 kubeconfig 文件,该文件在您使用kube-up.sh创建集群 或成功部署 Minikube 集群时自动创建。默认情况下,kubectl 配置位于~/.kube/config.

通过获取集群状态检查 kubectl 是否正确配置:

kubectl cluster-info

如果您看到 URL 响应,则 kubectl 已正确配置为访问您的集群。

如果您看到类似以下的消息,则 kubectl 配置不正确或无法连接到 Kubernetes 集群。

The connection to the server <server-name:port> was refused - did you specify the right host or port?

例如,如果您打算在笔记本电脑(本地)上运行 Kubernetes 集群,则需要先安装 Minikube 之类的工具,然后重新运行上述命令。

如果 kubectl cluster-info 返回 url 响应但您无法访问您的集群,请检查它是否配置正确,请使用:

kubectl cluster-info dump

如果运行报以下异常:

Unable to connect to the server: dial tcp [::1]:8080: connectex: No connecti

请检查Docker deskTop 是否启用

 

五. 安装kubectl convert插件

 

Kubernetes 命令行工具的插件kubectl,允许您在不同 API 版本之间转换清单。这对于将清单迁移到具有较新 Kubernetes 版本的非弃用 api 版本特别有用。有关更多信息,请访问迁移到非弃用 api

  1. 使用以下命令下载最新版本:

    curl -LO "https://dl.k8s.io/release/v1.23.0/bin/windows/amd64/kubectl-convert.exe"
    
  2. 验证二进制文件(可选)

    下载 kubectl-convert 校验和文件:

    curl -LO "https://dl.k8s.io/v1.23.0/bin/windows/amd64/kubectl-convert.exe.sha256"
    

    根据校验和文件验证 kubectl-convert 二进制文件:

    • 使用命令提示符手动将CertUtil的输出与下载的校验和文件进行比较:

      CertUtil -hashfile kubectl-convert.exe SHA256
      type kubectl-convert.exe.sha256
      
    • 使用 PowerShell 使用-eq运算符自动验证以获取 aTrueFalse结果:

      $($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
      
  3. 将 kubectl 二进制文件夹附加或添加到您的PATH环境变量中。

  4. 验证插件是否安装成功

    kubectl convert --help
    

    如果您没有看到错误,则表示插件已成功安装。

六. 安装 Minikube

下载最新版 https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe

使用 PowerShell

New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing

将二进制文件添加到您的PATH

$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -inotcontains 'C:\minikube'){ `
  [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine) `
}

七.启动您的集群

minikube start

如果你收到如下:

minikube : 无法将“minikube”项识别为 cmdlet、

那么请检查权限:

Get-ExecutionPolicy -List 查看当前所有作用域 
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned

设置权限 Set-ExecutionPolicy RemoteSigned -Scope < scopeName >,设置当前用户作用域具备权限,具体设置格

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

 

官方向导请参照:https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/

 

 

  

minikube start

推荐阅读