搭建Kubernetes集群(2. 命令行工具 kubectl和3. API 概述)

58 阅读3分钟

搭建Kubernetes集群

2. 命令行工具 kubectl

Kubernetes 提供 kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。

这个工具叫做 kubectl。

更多命令

2.1. 在任意节点上使用kubectl

master

  1. 将 master 节点中 /etc/kubernetes/admin.conf 拷贝到需要运行的服务器的 /etc/kubernetes 目录中
scp /etc/kubernetes/admin.conf root@192.168.37.11:/etc/kubernetes

scp /etc/kubernetes/admin.conf root@192.168.37.12:/etc/kubernetes

node1和node2

  1. 在对应的服务器上配置环境变量
#与服务器localhost:8080的连接被拒绝
# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?

# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

# 使变量生效
# source ~/.bash_profile

# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   20h   v1.23.6
node1    Ready    <none>                 20h   v1.23.6
node2    Ready    <none>                 20h   v1.23.6

2.2. 资源操作

#获取部署
# kubectl get deploy
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           168m

# kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
nginx-85b98978db-4qzd8   1/1     Running   0          3h14m

#把deploy下nginx设置为3个
# kubectl scale deploy --replicas=3 nginx
deployment.apps/nginx scaled


# kubectl get po
NAME                     READY   STATUS    RESTARTS   AGE
nginx-85b98978db-4qzd8   1/1     Running   0          3h16m
nginx-85b98978db-brnbj   1/1     Running   0          68s
nginx-85b98978db-ccqrp   1/1     Running   0          68s

#详细信息
# kubectl get po -o wide
NAME                     READY   STATUS    RESTARTS        AGE    IP               NODE    NOMINATED NODE   READINESS GATES
nginx-85b98978db-4qzd8   1/1     Running   1 (2m41s ago)   6h9m   10.244.104.4     node2   <none>           <none>
nginx-85b98978db-brnbj   1/1     Running   1 (2m41s ago)   174m   10.244.104.3     node2   <none>           <none>
nginx-85b98978db-ccqrp   1/1     Running   1 (2m35s ago)   174m   10.244.166.130   node1   <none>           <none>

#获取deploy下nginx信息输出格式为yaml类型
# kubectl get deploy nginx -o yaml

3. API 概述

官网文档:kubernetes.io/zh-cn/docs/…/

REST API 是 Kubernetes 系统的重要部分,组件之间的所有操作和通信均由 API Server 处理的 REST AP I调用,大多数情况下, API 定义和实现都符合标准的 HTTP REST 格式,可以通过 kubectl 命令管理工具或其他命令行工具来执行。

3.1. 类型

  • Alpha(不稳定、不推荐使用)
  • 包含 alpha 名称的版本(例如v1alpha1)。
  • 该软件可能包含错误。启用一个功能可能会导致 bug。默认情况下,功能可能会被禁用。
  • 随时可能会丢弃对该功能的支持,恕不另行通知。
  • API 可能在以后的软件版本中以不兼容的方式更改,恕不另行通知。
  • 该软件建议仅在短期测试集群中使用,因为错误的风险增加和缺乏长期支持。
  • Beta
  • 包含 beta 名称的版本(例如 v2beta3)。

  • 该软件经过很好的测试。启用功能被认为是安全的。默认情况下功能是开启的。

  • 细节可能会改变,但功能在后续版本不会被删除

  • 对象的模式或语义在随后的 beta 版本或 Stable 版本中可能以不兼容的方式发生变化。如果这种情况发生时,官方会提供迁移操作指南。这可能需要删除、编辑和重新创建API对象。

  • 该版本在后续可能会更改一些不兼容地方,所以建议用于非关键业务,如果你有多个可以独立升级的集群,你也可以放宽此限制。

  • 大家使用过的 Beta 版本后,可以多给社区反馈,如果此版本在后续更新后将不会有太大变化。

  • Stable(推荐)
  • 该版本名称命名方式:vX 这里 X 是一个整数。
  • Stable 版本的功能特性,将出现在后续发布的软件版本中

3.2. 废弃 api 说明

kubernetes.io/zh-cn/docs/…