Kubernetes(K8S)
介绍
Kubernetes(简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一个强大的容器编排引擎,能够帮助开发人员和运维团队更高效地管理容器化应用。
Kubernetes的核心概念是将应用程序打包成一个个独立的容器,并将其部署到一个由多个主机组成的集群中。Kubernetes负责自动化地管理这些容器,确保它们的高可用性、可伸缩性和弹性。
Kubernetes提供了许多功能和特性,例如:
- 自动容器部署和弹性伸缩:Kubernetes可以根据应用程序的需求自动部署和调度容器,确保应用程序始终可用,并根据需求自动扩展或缩减容器数量。
- 服务发现和负载均衡:Kubernetes可以自动为应用程序提供服务发现和负载均衡功能,使得应用程序可以更方便地进行通信和负载均衡。
- 自动容器健康检查和重启:Kubernetes可以定期检查容器的健康状态,并在必要时自动重启容器,确保应用程序的稳定性。
- 滚动更新和回滚:Kubernetes支持滚动更新应用程序,可以逐步替换旧版本的容器,避免应用程序的中断。如果更新出现问题,还可以方便地进行回滚操作。
- 存储编排:Kubernetes提供了灵活的存储编排功能,可以将存储卷动态地挂载到容器中,使得应用程序可以方便地访问持久化数据。
总之,Kubernetes是一个强大的容器编排平台,可以帮助开发人员和运维团队更好地管理和扩展容器化应用程序,提高应用程序的可靠性和可伸缩性。
强烈建议直接使用云平台的 k8s 产品,自建是没有网关的不能直接绑定域名获取公网 IP,动态伸缩也意义不大受制于物理机限制
另外使用 k8s 部署项目需要掌握下列技能:
- Docker构建镜像
- Linux
- CI 持续集成(如:
Github Action
、Jenkinsfile
)
推荐社区、文档
安装
此处借鉴 KubeSphere
的文档手册,可以直接快速安装 Kubernetes
和 KubeSphere
多节点安装
没时间写
基本命令快速上手
# 查看命名空间(项目)
$ kubectl get namespaces
# 查看节点
$ kubectl get nodes
# 查看部署
$ kubectl get deploy
# 查看pod
$ kubectl get pods
# 查看Service
$ kubectl get services
# 查看events
$ kubectl get events
...
k8s 支持命名空间(项目),可以隔离查看资源,只需要在 kubectl
后面加 -n <命名空间>
即可
$ kubectl get pods -n gbxy # 查看命名空间是 gbxy 的
$ kubectl get pods --namespace gbxy # 查看命名空间是 gbxy 的
$ kubectl get pods -A # 所有
卸载
没时间写