Kubernetes | 安装并使用 kubectl 管理集群

本文介绍如何安装kubectl命令行工具,并详细说明其配置过程。此外,还提供了kubectl的常见用法和命令实例,帮助读者有效管理和操作Kubernetes集群。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

永久地址:Kubernetes | 安装并使用 kubectl 管理集群(保存网址不迷路 🙃)

 

问题描述

kubectl,是 Kubernetes 集群管理命令,用于管理 Kubernetes 集群,完成集群维护任务。

该笔记将记录:命令 kubectl 的安装、配置、使用方法,以及常见问题处理。

解决方案

安装 kubectl 命令

关于版本选择:根据官网,kubelet 命令的 次要版本号 应与集群的次版本号最大差一(比如,版本 kubectl-v1.2 可以正常操作版本 Kubernetes v1.1、v1.2、v1.3 的集群),以防止出现某些意料之外的情况。

第一步、安装命令

官方支持通过包管理器安装,但是它是 GOOGLE 源无法访问,我们使用阿里云镜像仓库:

# CentOS 7.4(如果使用阿里云镜像仓库)
yum install -y kubelet-1.16.2

通用安装方法

# 下载稳定版本;
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

# 下载特定版本(例如 v1.15.0 版本)
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl

# 授权,移动,验证
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl
kubectl version --client

################################################################################
# 其他系统
################################################################################
# 其他系统也是类似的,只不过是下载的目录不同。
# 其他版本的安装可以参考官方文档:https://kubernetes.io/docs/tasks/tools/install-kubectl/#download-as-part-of-the-google-cloud-sdk

第二步、调整配置

如果要访问集群,需要使用 kubeconfig 配置文件,该文件位于 ~/.kube/config(在集群主机上),是集群初始化时创建的(手动复制):

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

配置文件 ~/.kube/config 的格式如下(通常使用 kubectl config 命令修改,无需手动编辑):

# touch $HOME/.kube/config
apiVersion: v1
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}

################################################################################
# 配置集群
################################################################################
clusters:
- cluster:
    certificate-authority-data: <ca-data>
    server: https://10.10.50.90:6443
  name: kubernetes

################################################################################
# 配置用户
################################################################################
users:
- name: kubernetes-admin
  user:
    client-certificate-data: <client-cert-data>
    client-key-data: <client-key-data>

################################################################################
# 配置上下文(要使用的用户及要访问的集群)
################################################################################
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes

第三步、验证命令

# 验证配置
kubectl cluster-info
# 如果配置正确,下面的命令将返回URL地址,例如:
# Kubernetes master is running at https://10.10.50.90:6443

# 如果服务器返回 URL 地址,但是决绝连接,则使用下面的命令进行排查,以检查配置文件是否正确:
kubectl cluster-info dump

配置 BASH 自动补全

# 首先,需要安装 bash-complete 包,因为 kubectl 依赖于它。
# 然后,启用 kubectl 补全
apt-get install bash-completion # Debian
yum install bash-completion     # CentOS
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc

# 或者,可以将脚本放入 /etc/bash_completion.d 中
# 当然,这样也需要从新 source 一下。
kubectl completion bash > /etc/bash_completion.d/kubectl
source /etc/bash_completion.d/kubectl

# 第一种方法,这样不用考虑 kubectl 升级的问题,它是动态加载的
# 第二种方法,在 kubectl 升级后,需要重新执行

常用命令

查看与删除 Pod 对象:

kubectl get pods -n "namespace"
kubectl delete pods "pod name"

删除资源定义:

kubectl delete -f foo.yaml

删除命名空间内所有 ConfigMap 定义:

kubectl delete configmaps $(kubectl -n default get configmaps --output=jsonpath="{range .items[*]}{.metadata.name}{' '}{end}")

导出命名空间中的 Deployment 定义:

kubectl get -n "namespace" deployment "deployment-name" -o yaml --export

查看 Deployment 信息:

kubectl get deployment kubernet-dashboard -n kube-system

修改 Deployment 镜像:

kubectl set -n "namespace" image "deployment/deploy-foo"  "deploy-foo"="image-name"

打开编辑器修改 Deployment 信息:

kubectl edit deployment/myapp-deployment --image=172.20.34.206:5000/myapp:img:3.0
kubectl edit deployment kubernet-dashboard -n kube-system
kubectl patch deployment "deployment-name" -p "{......}"

为 kubectl 安装插件

kubernetes-sigs/krew: 📦 Find and install kubectl plugins
Kubectl plugins available · Krew

相关链接

配置文件:
Configure Access to Multiple Clusters

命令手册:
Overview of kubectl
Kubernetes/Reference/kubectl

相关文章

「Kubernetes」- Taints and Tolerations(学习笔记)
「Kubernetes」- Part of the existing bootstrap client certificate is expired
「Kubernetes」- Drain a Node
「Kubernetes」- 重新申请证书
「Kubernetes」- Feature Gates
「Kubernetes」- 重新申请证书
「kubectl」- 输出格式
「Kubernetes」- 重新申请证书

参考文献

Install and Set Up kubectl
Optional kubectl configurations/Introduction
使用kubectl delete pods xxx删除对应的pod,提示删除成功,但是立马又回生成一个。为何?
Get YAML for deployed Kubernetes services?
how to delete/remove calico cni from my kubernetes cluster

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值