theme: condensed-night-purple
highlight: a11y-dark
搭建Kubernetes集群
2. 命令行工具 kubectl
Kubernetes 提供 kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。
这个工具叫做 kubectl。
2.1. 在任意节点上使用kubectl
master
- 将 master 节点中 /etc/kubernetes/admin.conf 拷贝到需要运行的服务器的 /etc/kubernetes 目录中 ```go 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
- 在对应的服务器上配置环境变量 ```go
与服务器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 20h v1.23.6 node2 Ready 20h v1.23.6 ```
2.2. 资源操作
```go
获取部署
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 nginx-85b98978db-brnbj 1/1 Running 1 (2m41s ago) 174m 10.244.104.3 node2 nginx-85b98978db-ccqrp 1/1 Running 1 (2m35s ago) 174m 10.244.166.130 node1
获取deploy下nginx信息输出格式为yaml类型
kubectl get deploy nginx -o yaml
```
3. API 概述
官网文档:https://kubernetes.io/zh-cn/docs/reference/using-api/
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 说明
https://kubernetes.io/zh-cn/docs/reference/using-api/deprecation-guide/