Kubernetes

Kubernetes是由谷歌开发的,对docker的编排
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

一:安装k8s KubeKey以及kuboard

硬件配置:CentOS 7.x 2 核 CPU,2GB 内存,40 GB 磁盘空间

1:先执行以下命令以确保您从正确的区域下载 KubeKey

export KKZONE=cn

执行以下命令下载 KubeKey。

curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.1 sh -

为 kk 添加可执行权限:

chmod +x kk

2:开始安装kubernetes (这里默认端口号是22)

执行该命令后,KubeKey 将检查您的安装环境,结果显示在一张表格中。有关详细信息,请参见节点要求和依赖项要求。输入 yes
继续安装流程。

./kk create cluster --with-kubernetes v1.22.10

第一次安装遇到这样的问题

在这里插入图片描述
这两个是必须要的,因此需要安装

yum install -y socat
yum install -y conntrack

然后重写安装

./kk create cluster --with-kubernetes v1.22.10

### 3:**验证安装结果**

> 出现下面结果表示安装成功

```bash
kubectl get pod -A

在这里插入图片描述

3:安装kuboard

k8s多集群管理界面(国产)
基于J2EE
在使用方面比较好入门 kubeshare

执行一下命令

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

kubectl get pods -n kuboard(这里需要多等一会)

出现5个running表示kuboard安装成功
在这里插入图片描述
http://192.168.137.3:30080/端口是30080

账号:admin
密码:kuboard123

进入图形界面
在这里插入图片描述
第一次进入点击default(默认设置)
在这里插入图片描述

二:k8s功能

  1. 自动装箱

基于容器对应用运行环境的资源配置要求自动部署应用容器

  1. 自我修复(自愈能力)

当容器失败时,会对容器进行重启
当所部署的 Node 节点有问题时,会对容器进行重新部署和重新调度
当容器未通过监控检查时,会关闭此容器直到容器正常运行时,才会对外提供服务

  1. 水平扩展

通过简单的命令、用户 UI 界面或基于 CPU 等资源使用情况,对应用容器进行规模扩大或规模剪裁

  1. 服务发现

用户不需使用额外的服务发现机制,就能够基于 Kubernetes 自身能力实现服务发现和负载均衡。等等功能

  1. 版本回退

可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退

  1. 密钥和配置管理

自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph 等)、公共云存储服务

三:Kubernetes

1:Kubernetes集群

最少两台机

2:时间同步

安装集群的时候,每一个服务器必须时间同步

# 时间同步
yum install ntpdate -y
ntpdate time.windows.com

3:k8s 集群架构

在这里插入图片描述

kubectl:是k8s的入口命令
master node:主节点

  • API server 核心API-核心控制管理器调用
  • controller-manager:核心控制管理器调用
  • etcd:分布式存储(数据存储的地方)

worker node :从节点

  • kubelet:每个子节点的管理者(分厂长)–管理容器
  • Pod:存放docker容器(是k8s的最小单位)
  • kube-proxy:网络通信的代理(网络之间的访问)

四:K8S图形化部署

1:创建NameSpace

把建的集群通过namespace进行分组

在这里插入图片描述

创建一个工作负载

2:pod(容器组)

Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在 k8s 上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展 Pod 对象功能的,比如控制器对象是用来管控 Pod 对象的,Service 或者Ingress 资源对象是用来暴露 Pod 引用对象的,PersistentVolume 资源对象是用来为 Pod 提供存储等等,k8s 不会直接处理容器,而是 Pod,Pod 是由一个或多个 container 组成

3:Service

Service 是 Kubernetes 最核心概念,通过创建 Service,可以为一组具有相同功能的容器应用提供一个统一的入口地 址,并且将请求负载分发到后端的各个容器应用上。

  • ClusterIP:虚拟的服务ip地址,用于k8s集群内部的pod访问,在Node上kube-porxy通过设置的iptables规则进行转发(只能内部访问)
  • NodePort:使用宿主机端口,能够访问各Node的外部客户端通过Node的IP和端口就能访问服务器(外部访问
  • LoadBalancer:使用外部负载均衡器完成到服务器的负载分发,一般使用专门的负载均衡
  location / {
  #位置
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐