搭建Kubernetes集群
2. 命令行工具 kubectl
Kubernetes 提供 kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。
这个工具叫做 kubectl。
2.1. 在任意节点上使用kubectl
master
- 将 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
- 在对应的服务器上配置环境变量
#与服务器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 版本的功能特性,将出现在后续发布的软件版本中