使用kubectl连接远程集群

一. 安装kubectl

对于 MacOS / Linux 系统

  1. 下载安装Kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl

  1. 使kubectl生成二进制可执行文件。
chmod +x ./kubectl

  1. 将二进制文件移到您的**PATH**
sudo mv ./kubectl /usr/local/bin/kubectl

  1. 测试安装版本是最新的
kubectl version --client

对于 Windows 系统

  1. 点此下载并安装kubetcl-windows最新版本 v1.23.0
  2. 将保存 kubectl.exe 的文件夹路径添加到您的**PATH**环境变量中。
  3. 确保**kubectl**的版本与下载的相同:
kubectl version --client

在这里插入图片描述

二. 配置kubectl

对于 Linux 系统

  1. 查看自己的kubectl的配置
kubectl config view

使用kubectl连接远程集群_第1张图片

可以看见还没有任何配置,接下来需要手动添加配置。

  1. 从rancher获取配置

登陆rancher网站:https://rancher.huxiang.pro

请按照分配的集群名称,点击要使用的集群。如图,我这里是dell-k3s

使用kubectl连接远程集群_第2张图片

点击Kubeconfig File,打开rancher配置参考

使用kubectl连接远程集群_第3张图片

点击Copy to Clipboard,复制rancher配置内容

使用kubectl连接远程集群_第4张图片

  1. 设置本地kubectl配置

回到本地命令行,新建一个文件夹(我这里新建了一个/home/kubectl文件夹,可任意设置)

进入该文件夹,新建一个名为config的文件,注意没有后缀名

将刚刚复制到的rancher配置都粘贴进去

使用kubectl连接远程集群_第5张图片

保存并退出,接下来需要将kubectl设置配置到环境变量中,打开/etc/profile文件

将下面内容补充到文件末尾, 不要覆盖

KUBECTL=/usr/local/bin

KUBECONFIG=/home/kubectl/config

PATH=$PATH:$KUBECTL

export KUBECTLexport KUBECONFIGexport PATH

(注意在此只是以我的配置文件为例,具体要根据实际情况进行相应修改)

使用kubectl连接远程集群_第6张图片

保存并退出即可

  1. 使环境变量生效
source /etc/profile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R9tIg2ss-1647059246716)(https://zhiyuanbang.feishu.cn/space/api/box/stream/download/asynccode/?code=MTQ3ZjUwNWQzY2MxZjU5ZTVlMjE5YjNlZGUxNTg3OWZfc2dqeFg0R3BYcWx1Mkt0a3I5QWxwNThUNmJCRHFZcWVfVG9rZW46Ym94Y25xUHJtdHlNTDBLQmh2NHBmbFQyNTRlXzE2NDcwNTkxNTM6MTY0NzA2Mjc1M19WNA)]

  1. 执行以下命令,即可看到相关节点信息
kubectl get nodes

使用kubectl连接远程集群_第7张图片

在这里插入图片描述

  1. 设置k3s集群能够访问私有库镜像

新建一个codespace-deployment.yaml,添加以下配置,注意修改镜像名称:

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: codespace
  labels:
    account: codespace
imagePullSecrets:
- name: gitlab
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: <这里填写镜像名称>
  labels:
    app: <这里填写镜像名称>
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: <这里填写镜像名称>
      version: v1
  template:
    metadata:
      labels:
        app: <这里填写镜像名称>
        version: v1
    spec:
      serviceAccountName: codespace
      containers:
      - name: <这里填写镜像名称>
        image: nginx

保存并退出,执行以下命令。注意修改空间名称:

kubectl apply -f codespace-deployment.yaml -n <这里填写空间名称>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jhrNOALy-1647059246718)(https://zhiyuanbang.feishu.cn/space/api/box/stream/download/asynccode/?code=NTA4NTUyZWIxOTE1OGFlN2Q1MGZhOTM4YTRlNzlhNTlfYnpQaFNWUXNVSXd3M2hWSGw4S2diTXBUUnBnTEVNNVJfVG9rZW46Ym94Y25aaTJRb0NEYmFuS3UzWlZaQlNOeFZQXzE2NDcwNTkxNTM6MTY0NzA2Mjc1M19WNA)]

以上步骤没有异常报错,kubectl即为配置完毕

对于 MacOS/Windows 系统

  1. 查看自己的kubectl的配置
kubectl config view

使用kubectl连接远程集群_第8张图片

可以看见还没有任何配置,接下来需要手动添加配置。

  1. 从rancher获取配置

登陆rancher网站:https://rancher.huxiang.pro

点击要使用的集群名称,我这里是dell-k3s

使用kubectl连接远程集群_第9张图片

点击Kubeconfig File,打开rancher配置参考

使用kubectl连接远程集群_第10张图片

点击Copy to Clipboard,复制rancher配置内容

使用kubectl连接远程集群_第11张图片

  1. 进入到~/.kube目录,Windows为C:\Users\用户\.kube\(没有则手动创建.kube文件夹)

使用kubectl连接远程集群_第12张图片

进入该.kube文件夹,新建一个名为config的文件,注意没有后缀名

将刚刚复制到的rancher配置都粘贴进去

使用kubectl连接远程集群_第13张图片

使用kubectl连接远程集群_第14张图片

  1. 命令行执行以下命令,即可看到相关节点信息
kubectl get nodes

使用kubectl连接远程集群_第15张图片

三. 扩展小工具:安装kubectx和kubens

(推荐)安装好kubectl后可以安装kubectxkubens

kubectx是一种在 kubectl 上更快地在上下文(集群)之间切换的工具。

kubens是一个在 Kubernetes 命名空间之间轻松切换(并为 kubectl 配置它们)的工具。

官网安装教程地址:

GitHub - ahmetb/kubectx: Faster way to switch between clusters and namespaces in kubectl

  1. 显示当前已配置连接的所有集群:
kubectx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VIz7zl8L-1647059246726)(https://zhiyuanbang.feishu.cn/space/api/box/stream/download/asynccode/?code=ODcwOTRmYWE5ZTgzNWIxMWYwOTlmMDBmYTFiMTM4MjFfWFJJVTZMSTc5MGszbTFBV0cySFk3cjZFbGptajFkNU9fVG9rZW46Ym94Y253RkpBZE9Ob3gwVU8xaENleTFKNDRiXzE2NDcwNTkxNTM6MTY0NzA2Mjc1M19WNA)]

  1. 切换到使用的集群。我这里使用dev-v2
kubectx dev-v2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5pbJq70l-1647059246726)(https://zhiyuanbang.feishu.cn/space/api/box/stream/download/asynccode/?code=YmY3ZWM3YzhhY2EyNDk0ZTFiZDFmNzI1NzA2YjRmNDFfNUtXYmdMUGZVTkRjMDl0bGpZZzZKaVpZcTBnd1lCMmdfVG9rZW46Ym94Y25xSEppYW5pY3Z5OGRuUG02bGF4WjVmXzE2NDcwNTkxNTM6MTY0NzA2Mjc1M19WNA)]

你可能感兴趣的:(运维,linux,kubernetes,docker)