Kubernetes生产级容器编排

目录

一、Kubernetes

Kubernetes 功能

二、在 Linux 上安装和设置 kubectl

1、在开始之前

2、在 Linux 上安装 kubectl

2.1、在 Linux 上使用 curl 安装 kubectl 二进制文件

2.2、使用本机包管理安装

2.3、使用其他包管理安装

3、验证 kubectl 配置

4、可选的 kubectl 配置和插件

4.1、启用 shell 自动完成

4.2、介绍

4.3、安装 bash 补全

4.4、启用 kubectl 自动补全

4.5、安装kubectl convert插件


一、Kubernetes

也称为 K8s,是一个开源系统,用于自动部署、扩展和管理容器化应用程序。

它将构成应用程序的容器分组为逻辑单元,以便于管理和发现。Kubernetes 建立在 Google 15 年运行生产工作负载的经验之上,并结合了来自社区的最佳创意和实践。


行星规模
 

Kubernetes 的设计原则与允许 Google 每周运行数十亿个容器的原则相同,它可以在不增加运维团队的情况下进行扩展。

永不长大

无论是在本地进行测试还是在全球企业中运营,Kubernetes 的灵活性都会随着您的增长而增长,无论您的需求多么复杂,都能始终如一地轻松交付您的应用程序。

随时随地运行 K8s

Kubernetes 是开源的,让您可以自由地利用本地、混合或公共云基础设施,让您轻松地将工作负载转移到对您重要的地方。

Kubernetes 功能

  • 自动推出和回滚

Kubernetes 逐步推出对您的应用程序或其配置的更改,同时监控应用程序的运行状况以确保它不会同时杀死您的所有实例。如果出现问题,Kubernetes 将为您回滚更改。利用不断发展的部署解决方案生态系统。

  • 服务发现和负载均衡

无需修改您的应用程序以使用不熟悉的服务发现机制。Kubernetes 为 Pod 提供了自己的 IP 地址和一组 Pod 的单个 DNS 名称,并且可以在它们之间进行负载平衡。

  • 秘密和布置管理

部署和更新机密和应用程序配置,而无需重建映像,也不会在堆栈配置中暴露机密。

  • 自动装箱

根据资源需求和其他限制自动放置容器,同时不牺牲可用性。混合关键工作负载和尽力而为的工作负载,以提高利用率并节省更多资源。

  • 批量执行

除了服务之外,Kubernetes 还可以管理您的批处理和 CI 工作负载,如果需要,可以替换失败的容器。

  • IPv4/IPv6双栈

将 IPv4 和 IPv6 地址分配给 Pod 和服务

  • 水平缩放

使用简单的命令、使用 UI 或根据 CPU 使用情况自动缩放您的应用程序。

  • 自我修复

重新启动失败的容器,在节点死亡时替换和重新调度容器,杀死不响应用户定义的健康检查的容器,并且在它们准备好服务之前不将它们通告给客户端。

  • 可扩展

在不更改上游源代码的情况下向 Kubernetes 集群添加功能。

二、在 Linux 上安装和设置 kubectl

1、在开始之前

您必须使用与集群的一个次要版本差异内的 kubectl 版本。例如,v1.24 客户端可以与 v1.23、v1.24 和 v1.25 控制平面进行通信。使用 kubectl 的最新兼容版本有助于避免不可预见的问题。

2、在 Linux 上安装 kubectl

在 Linux 上安装 kubectl 有以下方法:

2.1、在 Linux 上使用 curl 安装 kubectl 二进制文件

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

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    
    笔记:

    要下载特定版本,请将$(curl -L -s https://dl.k8s.io/release/stable.txt)命令的部分替换为特定版本。

    例如,要在 Linux 上下载 v1.24.0 版本,请键入:

    curl -LO https://dl.k8s.io/release/v1.24.0/bin/linux/amd64/kubectl 
  2. 验证二进制文件(可选)

    下载 kubectl 校验和文件:

    curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
    

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

    echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check
    

    如果有效,则输出为:

    kubectl: OK
    

    如果检查失败,sha256则以非零状态退出并打印类似于以下内容的输出:

    kubectl: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    
    注意:下载相同版本的二进制文件和校验和。
  3. 安装 kubectl

    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    
    注意:

    如果您在目标系统上没有 root 访问权限,您仍然可以将 kubectl 安装到该~/.local/bin目录:

    chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl # and then append (or prepend) ~/.local/bin to $PATH 
  4. 测试以确保您安装的版本是最新的:

    kubectl version --client
    

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

    kubectl version --client --output=yaml    
    

2.2、使用本机包管理安装

  1. 更新apt包索引并安装使用 Kubernetesapt存储库所需的包:

    sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl 
  2. 下载 Google Cloud 公共签名密钥:

    sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg 
  3. 添加 Kubernetesapt存储库:

    echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list 
  4. 使用新存储库更新apt包索引并安装 kubectl:

    sudo apt-get update sudo apt-get install -y kubectl 

2.3、使用其他包管理安装

如果您使用的是 Ubuntu 或其他支持snap包管理器的 Linux 发行版,则 kubectl 可作为snap应用程序使用。

snap install kubectl --classic kubectl version --client 

3、验证 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

4、可选的 kubectl 配置和插件

4.1、启用 shell 自动完成

kubectl 为 Bash、Zsh、Fish 和 PowerShell 提供了自动补全支持,可以为您节省大量输入。

4.2、介绍

可以使用命令生成 Bash 的 kubectl 完成脚本kubectl completion bash。在您的 shell 中获取完成脚本会启用 kubectl 自动完成。

但是,补全脚本依赖于bash-completion,这意味着你必须先安装这个软件(你可以通过运行来测试你是否已经安装了 bash-completion type _init_completion)。

4.3、安装 bash 补全

bash-completion 由许多包管理器提供。您可以使用apt-get install bash-completionoryum install bash-completion等​​安装它。

上面的命令 create /usr/share/bash-completion/bash_completion,它是 bash-completion 的主要脚本。根据您的包管理器,您必须在文件中手动获取此~/.bashrc文件。

要找出答案,请重新加载您的 shell 并运行type _init_completion. 如果命令成功,则您已经设置好,否则将以下内容添加到您的~/.bashrc文件中:

source /usr/share/bash-completion/bash_completion 

重新加载您的 shell 并通过键入 验证 bash-completion 是否已正确安装type _init_completion

4.4、启用 kubectl 自动补全

重击

您现在需要确保 kubectl 完成脚本在您的所有 shell 会话中获取源。有两种方法可以做到这一点: 

 echo 'source <(kubectl completion bash)' >>~/.bashrc 

如果您有 kubectl 的别名,您可以扩展 shell 补全以使用该别名:

echo 'alias k=kubectl' >>~/.bashrc echo 'complete -o default -F __start_kubectl k' >>~/.bashrc 
注意: bash-completion 将所有完成脚本都放在/etc/bash_completion.d.

两种方法是等效的。重新加载 shell 后,kubectl 自动完成功能应该可以工作了。

4.5、安装kubectl convert插件

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

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

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert"
    
  2. 验证二进制文件(可选)

    下载 kubectl-convert 校验和文件:

    curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"
    

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

    echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check
    

    如果有效,则输出为:

    kubectl-convert: OK
    

    如果检查失败,sha256则以非零状态退出并打印类似于以下内容的输出:

    kubectl-convert: FAILED
    sha256sum: WARNING: 1 computed checksum did NOT match
    
    注意:下载相同版本的二进制文件和校验和。
  3. 安装 kubectl-convert

    sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
    
  4. 验证插件是否安装成功

    kubectl convert --help
    

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

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡布奇诺-海晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值