Linux 系统中安装并设置Kubectl

2024-05-13 1012阅读

前言:

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

Linux 系统中安装并设置Kubectl
(图片来源网络,侵删)

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

要求:

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

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

#查看K8S集群使用kubectl版本
root@master:/# kubectl version 
Client Version: v1.29.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server 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: FAILED
sha256sum: 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 kubectl
mkdir -p ~/.local/bin
mv ./kubectl ~/.local/bin/kubectl
#将 ~/.local/bin 附加(或前置)到 $PATH
echo 'export PATH="~/.local/bin:$PATH"' >> ~/.bashrc
source ~/.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  /etc/hosts

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

[root@test02 ~]# kubectl cluster-info
Kubernetes control plane is running at https://master:6443
CoreDNS is running at https://master:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
[root@test02 ~]# 
[root@test02 ~]# kubectl get node
NAME     STATUS     ROLES           AGE   VERSION
master   Ready      control-plane   85d   v1.29.0
node01   NotReady   worker          85d   v1.29.0
node02   NotReady   worker          85d   v1.29.0
[root@test02 ~]# 
[root@test02 ~]# kubectl get pod -n kube-system
NAME                                   READY   STATUS        RESTARTS         AGE
coredns-857d9ff4c9-w8hxr               1/1     Running       0                108m
coredns-857d9ff4c9-x5rj5               1/1     Running       0                108m
etcd-master                            1/1     Running       10 (115m ago)    85d
kube-apiserver-master                  1/1     Running       10 (115m ago)    85d
kube-controller-manager-master         1/1     Running       11 (115m ago)    85d
kube-proxy-5kwqj                       1/1     Running       10 (115m ago)    85d
kube-proxy-7p48k                       1/1     Running       9 (2d12h ago)    85d
kube-proxy-f4lgd                       1/1     Running       0                85d
kube-scheduler-master                  1/1     Running       11 (115m ago)    85d
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]