Kubernetes、KuberSphere初识和实践

简介: 本文对KuberNetes 中的概念做简单介绍。同时记录了一次KuberNetes和KuberSphere的部署经历。

本文对KuberNetes 中的概念做简单介绍。同时记录了一次KuberNetes和KuberSphere的部署经历。

初识Kubernetes

生产级别的容器编排系统

自动化的容器部署、扩展和管理

简单的说Kubernetes就是用来管理Docker的。它解决了Docker之上,应用之下,这个层面上许多复杂的问题。如自动部署,限制资源,自动重启、迁移故障,简化应用的访问等。

准备知识

master管理节点,与node工作节点相对。node干活master管理。

其中master包含组件:

api server 操作入口。Kubernetes的所有操作指令由对此下达。

etcd 集群内部用键值数据库。

scheduler调度器。调度工作的。

controller控制器。发布实际的指令。

node 中包含组件:

pod 几个相关容器(docker),它们被统一管理。Kubernetes的基本管理单位。

kubelet代理。master节点命令的实际执行者。

kube-proxy网络代理,网络入口和出口。

kubectl 命令行管理工具。

volume 数据卷,保存数据。

概念:

deployment 部署。指在节点部署的pod。

service服务,组合多个部署的pod,提供对外访问。

label 标签,selector 选择器,如给节点打上某标签,可以在部署应用时,只部署在包含标签的节点上。

namespace 命名空间,做逻辑隔离。

kubeadm 集群部署工具。

Ingress应用网关,统一出口、负载均衡。

架构图

t1.jpg

KubeSphere

面向云原生应用的容器混合云

Kubernetes的图形化的、优秀的管理界面,代替命令行的操作方式。

可以管理多云上的集群。将是日常工作中打交道最多的工具。

Kubernetes集群搭建

程序版本:

  • kubernetes  v1.17.3
  • Docker version 18.03.1-ce, build 9ee9f40
  • KubeSphere 3.0.0

配置文件:

安装过程中用到的配置文件。

https://gitee.com/blue1018/blue/tree/master/kubernetes_start/k8s

安装前置条件

  • 一台或多台机器,操作系统Centos7。
  • 硬件配置:3072MB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多。
  • 各节点网络通畅。

所有节点下的操作

操作系统设置

设置阿里云Centos镜像源

安装Docker

安装 kubectl、kubeadm、kubelet

主节点下的操作

镜像拉取

初始化主节点

其中apiserver-advertise-address 要换成自己的IP。

安装正常时的返回结果:

执行返回结果中的命令

pod进度监控

新开个ssh窗口监视pod安装进度

安装网络插件

子节点加入集群

主节点中建立TOKEN

子节点执行,执行返回结果中的命令,加入集群

在主节点查看集群的node

部署Ingess

部署一个nginx

以nginx为例测试Ingress

用Ingress暴露一个服务

通过Ingress访问 Nginx服务

浏览器里通过 nginx.dev.com 访问。

这里Ingress 用域名 nginx.dev.com 暴露的Nginx服务。需要修改本地host文件,把域名映射到部署了ingress的节点的可访问IP。


KuberSphere 安装

在主节点最小化安装。

安装openebs

Kubernetes的存储方案

删除污点,node201 换成你自己的master hostname。

建立命名空间、安装

等待安装结束

设置默认storageclass

安装完成后还原污点

安装kubesphere

查看安装日志

等待几分钟的时间、日志出现下面内容就可以访问了。


结语

完成集群搭建后,可阅读 KubernetesKuberSphere 官方文档。做进一步探索,如高可用的Kubernetes集群、KuberSphere完整的DEVOPS流。

附录

常用命令例子

kubectl get all --all-namespaces  -o wide #查看集群所有资源
kubectl get pods --all-namespaces #查看所有空间下的pod
kubectl create deployment nginx --image=nginx #以nginx镜像建立一个名为nginx的部署。
kubectl get deployment #查看部署
kubectl scale --replicas=4 deployment nginx #修改名为nginx的部署,副本数量为4
kubectl get pod nginx -o yaml #输出名为nginx的pod的yaml配置信息。
kubectl create deployment nginx --image=nginx --dry-run -o yaml #dry-run不真正运行,只为输出配置信息。
kubectl api-versions #查看api版本
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort #暴露nginx服务,访问端口80.
kubectl get ingress --all-namespaces #查看网关的路由。
kubectl describe pod redis-6fd6c6d6f9-zwvmd  -n kubesphere-system #查看指定空间、指定名称的pod的详细信息。
kubectl describe ingress test #查看名为test的路由的详细信息
kubectl delete ingress web #删除名为web的ingress路由
kubectl edit ingress nginx-web#编辑名为nginx-web的路由
kubectl get nodes --show-labels #查看节点的标签
kubectl apply -f nginx.yaml #根据配置文件进行操作
kubectl delete  deployment.apps/nginx #删除nginx部署
kubectl delete service/nginx #删除nginx服务
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化实践
【4月更文挑战第22天】在动态且复杂的微服务架构中,确保 Kubernetes 集群的高性能运行是至关重要的。本文将深入探讨针对 Kubernetes 集群性能优化的策略与实践,从节点资源配置、网络优化到应用部署模式等多个维度展开,旨在为运维工程师提供一套系统的性能调优方法论。通过实际案例分析与经验总结,读者可以掌握持续优化 Kubernetes 集群性能的有效手段,以适应不断变化的业务需求和技术挑战。
17 4
|
27天前
|
Kubernetes 网络协议 应用服务中间件
K8S二进制部署实践-1.15.5
K8S二进制部署实践-1.15.5
34 0
|
5月前
|
Kubernetes 安全 API
Kubernetes 多租户实践
Kubernetes 多租户实践
69 0
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
5月前
|
运维 Kubernetes 大数据
利用 Kubernetes 降本增效?EasyMR 基于 Kubernetes 部署的探索实践
Kubernetes 是市面上最受欢迎的集群管理解决方案之一,本文将介绍 EasyMR 作为一款提供一站式可视化组件安装部署与可观测运维管理能力的大数据计算引擎产品,是如何基于 Kubernetes 部署进行实践探索的。
46 0
|
3月前
|
Web App开发 Kubernetes 数据可视化
Kubernetes Dashboard 可视化插件部署 博主亲自实践可用
Kubernetes Dashboard 可视化插件部署 博主亲自实践可用
51 0
|
12天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
16 4
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
27 0
|
5月前
|
资源调度 分布式计算 Kubernetes
Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享
Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享
|
1月前
|
Kubernetes 云计算 开发者
云计算中的容器化技术:Docker与Kubernetes的实践
云计算中的容器化技术:Docker与Kubernetes的实践
107 0

推荐镜像

更多