kubectl 的基本使用
kubectl 是与 kubernetes 集群交互的一个命令行工具。我们可以用它来查看和管理 kubernetes 集群。
kubectl 是一个相对独立的工具。它可以配置用来访问本地的集群,也可以用来访问远端的集群。这些都可以保存在配置文件里并通过 context 进行切换。
kubernetes 对外通过 http 端口暴露服务,kubectl 正是通过与 kubernets api server 的 http 端口交互来操作集群。
使用kubectl查看k8s集群的版本和基本信息
kubectl cluster-info
可以看到, kubernetes 监听了本地的 32768 端口, kubectl 正是通过此端口与 kubernetes api server (master)交互。
版本信息里面显示了 client (kubectl) 以及 server( api server) 组件的版本等详细信息。
使用kubectl查看k8s集群结构
pods
是类似于 docker 中 container 的概念,是 kubernetes 最基本的单元之一。可以看到, kubernetes 本身的组件也是通过容器化的方式运行在集群中,并且都存在于 kube-system 这个 namespace 下。
这些组件有:
etcd
: kubernetes 的存储组件。kubernetes 中的数据主要都存在于其中,比如我们之前提到的 ConfigMap,、Namespace 等各种 Resource。apiserver
: kubernetes 对外提供 API 服务的组件,它也主要负责与 etcd 交互。scheduler
: 负责调度 pod 的组件。当我们想在一堆机器中运行 pod 时,它负责决定将 pod 运行在哪个机器上。controller-manager
: 当 pod 调度到机器上之后,其它服务将 pod 运行起来。controller manager 相当于一个具体执行任务的组件。Vproxy
: 负责 pod / 服务 访问的组件,每个机器上都会有一个,所以上面会有三个(三个节点)dns
: 负责集群内的 dns 功能。dashboard
: 提供了一个 UI 管理界面,是可选组件。本次实验中用不到,可忽略其错误。
可以将上面的 Pods 列表与 Kubernetes 集群的架构图对比观察:
其中 kubelet 是每个节点上都会有的 agent,负责本机器上的一些任务执行。
kubernetes 自身的组件也是通过上面所说的 Resource 结构来呈现的。之前说过,集群有一个已经创建的 namespace 叫 kube-system, 我们可以通过研究下它里面的内容来查看下集群结构:
kubectl get pods -n kube-system
查看 kubernetes 集群配置文件
在当前用户的目录下,我们可以看到 kubectl 的配置文件的内容:
cat ~/.kube/config
移动端设备除iPad Pro外,其它移动设备仅能阅读基础的文本文字。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。
您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。

您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。
狐狸教程 Copyright 2021