您现在的位置是:首页 > 诗句大全

Linux 系统中安装并设置Kubectl

作者:付梓时间:2024-05-14 16:00:06分类:诗句大全

简介  文章浏览阅读2.5k次,点赞41次,收藏17次。linux设备安装配置kubectl,使其能够访问指定K8S集群

点击全文阅读

前言:

       出于安全考虑,一般都不会直接在K8S集群的节点上操作,而是通过一台跳板机远程控制。

       下面我们在一台linux设备安装配置kubectl,使其能够访问指定K8S集群。

要求:

        官方要求kubectl 版本和集群版本之间的差异必须在一个小版本号内。 例如:v1.29 版本的客户端能与 v1.28、 v1.29 和 v1.30 版本的控制面通信。

        为了避免出现莫名奇妙的问题,最好与集群版本保持一致。

#查看K8S集群使用kubectl版本root@master:/# kubectl version Client Version: v1.29.0Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3Server Version: v1.29.0

一、开始安装:

1、用 curl 在 Linux 系统中安装 kubectl 

1.1、用以下命令在 Linux x86-64 中下载 1.29.3 版本(其他版本请替换版本号):

curl -LO https://dl.k8s.io/release/v1.29.3/bin/linux/amd64/kubectl

1.2、验证该可执行文件(可选步骤)

下载 kubectl 校验和文件(下载的 kubectl 与校验和文件版本必须相同):

curl -LO "https://dl.k8s.io/release/v1.29.3/bin/linux/amd64/kubectl.sha256"

基于校验和文件,验证 kubectl 的可执行文件: 

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

验证通过时,输出为:

kubectl: OK

验证失败时,sha256 将以非零值退出,并打印如下输出:

kubectl: FAILEDsha256sum: WARNING: 1 computed checksum did NOT match

 1.3、安装 kubectl

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

 说明:

        如果没有系统的 root 权限,可以将 kubectl 安装到目录 ~/.local/bin 中:

chmod +x kubectlmkdir -p ~/.local/binmv ./kubectl ~/.local/bin/kubectl#将 ~/.local/bin 附加(或前置)到 $PATHecho 'export PATH="~/.local/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc

1.4、执行测试,查看版本: 

kubectl version --client

2、用原生包管理工具安装

2.1、基于RedHat的发行版

2.1.1、 添加 Kubernetes 的 yum 仓库。如果你想使用 v1.29 之外的 Kubernetes 版本, 将下面命令中的  v1.29 替换为所需的次要版本。

# 这会覆盖 /etc/yum.repos.d/kubernetes.repo 中现存的所有配置cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/enabled=1gpgcheck=1gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.keyEOF

 说明:

        要将 kubectl 升级到别的次要版本,你需要先升级 /etc/yum.repos.d/kubernetes.repo 中的版本,再运行 yum update 命令。 更详细的步骤可以在更改 Kubernetes 软件包存储库中找到。

2.1.2、使用 yum 安装 kubectl:

sudo yum install -y kubectl-1.29.3

2. 2、基于Dibian的发行版

2.2.1、 更新 apt 包索引,并安装使用 Kubernetes apt 仓库所需要的包:

sudo apt-get update# apt-transport-https 可以是一个虚拟包;如果是这样,你可以跳过这个包sudo apt-get install -y apt-transport-https ca-certificates curl

2.2.2、下载 Kubernetes 软件包仓库的公共签名密钥。 同一个签名密钥适用于所有仓库,因此你可以忽略 URL 中的版本信息:

# 如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它,请阅读下面的注释。# sudo mkdir -p -m 755 /etc/apt/keyringscurl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgsudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # allow unprivileged APT programs to read this keyring   

说明:

在低于 Debian 12 和 Ubuntu 22.04 的发行版本中,/etc/apt/keyrings 默认不存在。 应在 curl 命令之前创建它。

2.2.3、添加合适的 Kubernetes apt 仓库。如果你想用 v1.29 之外的 Kubernetes 版本, 请将下面命令中的 v1.29 替换为所需的次要版本:

# 这会覆盖 /etc/apt/sources.list.d/kubernetes.list 中的所有现存配置echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.listsudo chmod 644 /etc/apt/sources.list.d/kubernetes.list   # 有助于让诸如 command-not-found 等工具正常工作

说明:

要将 kubectl 升级到别的次要版本,你需要先升级 /etc/apt/sources.list.d/kubernetes.list 中的版本, 再运行 apt-get update 和 apt-get upgrade 命令。 更详细的步骤可以在更改 Kubernetes 软件包存储库中找到。

2.2.4、更新 apt 包索引,然后安装 kubectl:

sudo apt-get updatesudo apt-get install -y kubectl-1.29.3

二、验证 kubectl 配置

       为了让 kubectl 能发现并访问 Kubernetes 集群,你需要一个kubeconfig文件。 通常,kubectl的配置信息存放于文件 ~/.kube/config 中。 

mkdir ~/.kube                               #将集群的config文件放在此目录
kubectl cluster-info
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.Unable to connect to the server: dial tcp: lookup master on 192.168.10.2:53: no such host

 将配置文件config里server项master替换成master主机IP

server: https://master:6443

 或者在hosts文件添加master主机的解析

echo '192.168.10.60 master' >> /etc/hosts

 再次验证,成功链接到指定K8S集群

[root@test02 ~]# kubectl cluster-infoKubernetes control plane is running at https://master:6443CoreDNS is running at https://master:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.[root@test02 ~]# [root@test02 ~]# kubectl get nodeNAME     STATUS     ROLES           AGE   VERSIONmaster   Ready      control-plane   85d   v1.29.0node01   NotReady   worker          85d   v1.29.0node02   NotReady   worker          85d   v1.29.0[root@test02 ~]# [root@test02 ~]# kubectl get pod -n kube-systemNAME                                   READY   STATUS        RESTARTS         AGEcoredns-857d9ff4c9-w8hxr               1/1     Running       0                108mcoredns-857d9ff4c9-x5rj5               1/1     Running       0                108metcd-master                            1/1     Running       10 (115m ago)    85dkube-apiserver-master                  1/1     Running       10 (115m ago)    85dkube-controller-manager-master         1/1     Running       11 (115m ago)    85dkube-proxy-5kwqj                       1/1     Running       10 (115m ago)    85dkube-proxy-7p48k                       1/1     Running       9 (2d12h ago)    85dkube-proxy-f4lgd                       1/1     Running       0                85dkube-scheduler-master                  1/1     Running       11 (115m ago)    85d

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句