Kubernetes(K8S)

介绍

Kubernetes(简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一个强大的容器编排引擎,能够帮助开发人员和运维团队更高效地管理容器化应用。

Kubernetes的核心概念是将应用程序打包成一个个独立的容器,并将其部署到一个由多个主机组成的集群中。Kubernetes负责自动化地管理这些容器,确保它们的高可用性可伸缩性和弹性

Kubernetes提供了许多功能和特性,例如:

    1. 自动容器部署和弹性伸缩:Kubernetes可以根据应用程序的需求自动部署和调度容器,确保应用程序始终可用,并根据需求自动扩展或缩减容器数量。
    1. 服务发现和负载均衡:Kubernetes可以自动为应用程序提供服务发现和负载均衡功能,使得应用程序可以更方便地进行通信和负载均衡。
    1. 自动容器健康检查和重启:Kubernetes可以定期检查容器的健康状态,并在必要时自动重启容器,确保应用程序的稳定性。
    1. 滚动更新和回滚:Kubernetes支持滚动更新应用程序,可以逐步替换旧版本的容器,避免应用程序的中断。如果更新出现问题,还可以方便地进行回滚操作。
    1. 存储编排:Kubernetes提供了灵活的存储编排功能,可以将存储卷动态地挂载到容器中,使得应用程序可以方便地访问持久化数据。

总之,Kubernetes是一个强大的容器编排平台,可以帮助开发人员和运维团队更好地管理和扩展容器化应用程序,提高应用程序的可靠性和可伸缩性。


强烈建议直接使用云平台的 k8s 产品,自建是没有网关的不能直接绑定域名获取公网 IP,动态伸缩也意义不大受制于物理机限制

另外使用 k8s 部署项目需要掌握下列技能:

  • Docker构建镜像
  • Linux
  • CI 持续集成(如:Github ActionJenkinsfile

推荐社区、文档

安装

此处借鉴 KubeSphere 的文档手册,可以直接快速安装 KubernetesKubeSphere

多节点安装

没时间写

基本命令快速上手

# 查看命名空间(项目)
$ 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 # 所有

卸载

没时间写

建议学习参考资料

Last Updated:
Contributors: 余小波