kubectl 命令行管理工具
- 标记红色为常用 必须记住
kubectl 工具管理 集群应用
- k8s 会帮我们调度到node上
- k8s 镜像交付物 CI环境 打包到镜像仓库
- 应用程序的生命周期 - 基于镜像
创建 run
1 | # --replicas=3 副本个数,一般保持在2个以上 |
发布 expose
1 | # 将项目暴露出去: |
1 | [root@k8s-master1 ~]# kubectl expose deploy/mynginx --port=80 --type=NodePort --target-port=80 --name=nginx-service |
1 | # 查看日志 |
1 | # 查看事件 |
更新 set
- ci 打包 升级
- 更新到最新版本,滚动更新 一个一个
- 回滚和更新的时候 注意pod的IP地址,每次都不一致,是因为重新创建了新的pod 但是service保持了pod的访问
1 | # 查看一个pod的信息 得到镜像版本 |
回滚 rollout
1 | # 查看当前项目的版本 |
删除 delete
1 | [root@k8s-master1 ~]# kubectl delete deployment/mynginx |
kubectl 工具远程连接 K8S集群
- 现在所有的管理都在 master 上操作 无法在别的服务器上管理 比如node
- 如何在其他服务器上使用kubectl
1 | # 先将kubectl命令发送到 node1上 |
1 | # 测试使用 |
1 | # 一般情况下,在k8smaster节点上集群管理工具kubectl是连接的本地http8080端口和apiserver进行通讯的, |
生成admin证书
1 |
|
1 | # 证书配置 |
1 | # 生成证书 |
kubectl配置文件
1 | # 在node上执行 |
1 | # 测试 |
YAML配置文件管理资源
语法格式
1 | YAML 是一种简洁的非标记语言。 |
使用yaml文件创建资源对象
- 通过文件描述创建的资源
- yaml可以留存复用,命令要写很多
1 | # 参考文档 |
deployment
1 | [root@k8s-master1 demo]# mkdir -p /opt/demo/ ;cd /opt/demo/ |
1 | # 创建 |
service
1 | # 官网文档 |
1 | # service 暴露 |
1 | [root@k8s-master1 demo]# kubectl create -f nginx-service.yaml |
整合到一起
- kubectl 是通过一条命令去创建资源对象
- yaml文件 有利于留存复用,通过描述创建资源对象
1 | # 删除 pod和service |
1 | # 整合到一起 |
1 | # 创建并查看 |
通过命令行生成 yaml文件
1 | # --dry-run 不会实际创建 而是生成yaml |
生成 yaml
- yaml文件不容易记住,所以大多数时候我们都生成配置文件,以方便复用
run命令 生成
1 | # 查看文件 只保留熟悉的 |
get 命令生成
1 | # 查看文件 只保留熟悉的 |
查看 pod 资源字段
1 | # Pod容器的字段拼写忘记了 |
systemctl restart kube-apiserver
systemctl restart kube-controller-manager
systemctl restart kube-scheduler