云耀云服务器L实例部署k8s测评|华为云云耀云服务器L实例评测使用体验

news2024/11/18 20:35:50

文章目录

  • 云耀云服务器L实例部署k8s测评
    • 名词解释
      • 云耀云服务器L实例
      • 云耀负载均衡
      • k8s及使用场景
        • 1.3.1 微服务架构
        • 1.3.2 自动化部署
        • 1.3.3 弹性伸缩
        • 1.3.4 多租户环境
        • 1.3.5 持续集成和持续部署
  • 3. 部署华为云云耀服务器L实例
    • 3.1 云耀服务器L实例购买
      • 3.1.1 云耀服务器L实例初始化配置
      • 3.1.2 远程登录云耀服务器L实例
  • 4. k8s部署
    • 4.1 环境准备
    • 4.2 Docker安装
    • 4.3 测试kubernetes集群
    • 4.4 k8s常用命令
  • 5. 总结

云耀云服务器L实例部署k8s测评

名词解释

云耀云服务器L实例

华为云云耀服务器L实例是一种高性能、高可靠性的云服务器实例,适用于大规模企业级应用、大数据分析等场景。它基于华为最新一代的硬件虚拟化技术,提供了更高的计算、存储和网络性能,同时保障了数据安全和隐私保护。

云耀云服务器L实例官网:https://www.huaweicloud.com/product/hecs-light.html

image-20231015175056075

华为云云耀服务器L实例拥有以下特点:

  1. 高性能:采用华为自研的最新一代虚拟化技术,提高了计算、存储和网络性能,使得L实例可以轻松应对大规模企业级应用和大数据分析等场景的高性能需求。
  2. 高可靠性:通过多重备份和快速恢复技术,保障了数据的安全性和可靠性。即使发生硬件故障或数据丢失,也能快速恢复业务,确保了业务的连续性。
  3. 简单易用:提供了自动化运维和智能管理平台,使得部署和管理云服务器变得简单易用。用户只需通过简单的配置和命令行工具,即可完成部署和管理任务。
  4. 灵活扩展:支持按需扩展资源,可根据业务需求自由调整计算、存储和网络资源,灵活应对业务增长和负载变化。
  5. 安全可靠:严格遵守国内外安全标准和法律法规要求,保护用户数据的安全性和隐私。同时,提供了多种安全措施,包括访问控制、漏洞扫描等,保障了云服务器的安全可靠运行。

云耀负载均衡

华为云云耀负载均衡(HCES ELB)是一种流量分发控制服务,它可以将访问流量根据分配策略分发到后端多台云耀云服务器L实例,从而实现对请求的负载均衡和控制。这一功能可以通过消除单点故障提升应用系统的可用性,并通过对计算资源的可用性、性能、可靠性等指标进行负载均衡,以及根据用户的身份、设备、网络环境等特征进行负载均衡,确保计算资源得到充分的利用,提高服务的可用性和性能。

image-20231015194424880

支持HTTP、HTTPS(即将推出)双协议,访问更安全;支持域名/IP两种访问方式,业务访问更灵活

负载均衡是将访问流量根据分配策略分发到后端多台服务器的流量分发控制服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,同时通过消除单点故障提升应用系统的可用性。

负载均衡由以下3部分组成:

  • 负载均衡器:接受来自客户端的传入流量并将请求转发到一个或多个后端服务器。
  • 监听器:您可以向您的负载均衡器添加一个或多个监听器。监听器使用您配置的协议和端口检查来自客户端的连接请求,并根据您定义的分配策略和转发策略将请求转发到一个后端服务器组里的后端服务器。
  • 后端服务器:每个监听器会绑定一个后端服务器组,后端服务器组中可以添加一个或多个后端服务器。后端服务器组使用您指定的协议和端口号将请求转发到一个或多个后端服务器。

k8s及使用场景

Kubernetes(简称 K8S)最初是由 Google 开发的一个用于管理容器化应用的开源项目,其设计目标是为了解决 Google 内部大规模容器集群的管理问题。Google 于 2014 年首次将 Kubernetes 以开源软件的形式发布,并逐渐形成了强大的社区,吸引了越来越多的公司和组织参与其中。

image-20231015200153128

随着时间的推移,Kubernetes 社区逐渐成为了一个庞大的开源生态系统,在全球范围内得到广泛的应用和推广。目前,Kubernetes 的社区成员包括了 Google、Red Hat、Microsoft、IBM、Docker 等业界领先的公司,他们通过贡献代码、技术支持等方式,致力于推动 Kubernetes 的发展和普及。

Kubernetes 的出现,很大程度上改变了云计算行业的格局,将容器技术推向了新的高度。在过去几年中,Kubernetes 已经成为了容器编排和管理领域的事实标准,并得到了越来越广泛的运用。无论是在公有云、私有云,还是混合云环境中,Kubernetes 都拥有广泛的适用场景,并能够帮助企业更加轻松地构建分布式应用和服务,提高应用程序的可靠性和弹性。

具体来说,Kubernetes 可以将应用程序打包成容器,并将这些容器部署到一个集群中,然后自动处理容器的生命周期管理、自动扩容等操作,让用户更加专注于应用程序的开发和业务逻辑。同时,Kubernetes 还提供了一系列的资源管理机制,如资源调度、容器网络、存储编排等,控制整个容器集群的运行状态,并保证应用程序在容器集群中的高可用性和可靠性。

1.3.1 微服务架构

Kubernetes 可以将微服务打包成容器,并将这些容器部署到一个集群中,并且在多个容器之间提供负载均衡和服务发现等功能,帮助用户更加方便地管理复杂的微服务架构。

1.3.2 自动化部署

Kubernetes 可以根据用户自定义的部署规范,自动将应用程序部署到指定的服务器或容器中,提高了部署的标准化和自动化程度,减少了出错可能性和手工操作的繁琐性。

1.3.3 弹性伸缩

Kubernetes 可以根据应用程序的负载情况,进行自动的容器伸缩操作,让用户可以更加高效地利用资源并提高应用程序的性能和可靠性。

1.3.4 多租户环境

Kubernetes 支持多租户环境,可以为不同的用户或部门提供独立的 Kubernetes 集群,并管理这些集群的资源配额、权限控制等,帮助用户更好地管理多个租户共享的资源。

1.3.5 持续集成和持续部署

Kubernetes 可以与持续集成和持续部署工具集成,实现自动化部署、测试、发布等操作,可以大大提高开发和发布效率。

总之,Kubernetes 是一个非常强大的容器管理平台,可以为用户带来很多便捷和优势。它在企业级应用程序和云计算环境中得到了广泛的应用和认可,成为当前最流行的容器编排和管理平台之一。

3. 部署华为云云耀服务器L实例

3.1 云耀服务器L实例购买

注释:部署Kubernetes集群至少需要3台服务器,其中至少要有1个服务器做master节点,至少要有1个服务器做node节点,且节点名称是唯一的

进入华为云官网: https://www.huaweicloud.com/

进入控制台

image-20231015145023861

搜索云耀服务器HECS

image-20231015145120416

选择登录L实例控制台

image-20231015145202811

如果没有应用实例,则可以选择购买资源

image-20231015145509267

云耀服务器L实例在购买阶段相对于传统的华为云ECS服务器购买十分简单便捷

关于区域选择,可以按照下面规则选择合适的区域

  • 地理位置就近原则。根据用户群所在位置,应就近选择区域以减少网络时延,提高访问速度。
  • 不同区域价格差异。不同区域的服务器价格可能会有所不同,因此需考虑预算和成本效益。
  • 备案考虑。根据所在的行业和业务需求,有些区域可能需要特定的备案或审批手续,应该提前了解和考虑。
  • 多产品同区域内网互通。如果需要将多个华为云产品部署在同一区域内,以便实现内网互通,可以提高访问速度和数据传输效率。

本次我选择的是Centos7.8版本

关于实例规格选择,这要根据大家的实际业务需求和资金进行综合考虑

综上考虑,我现在的区域为华北-北京四,系统镜像为Centos7.8,实例规格为2c-2G,先购买一个月

image-20231015150608062

大家也可以根据自己需求选择增配数据盘,主机安全,云备份等功能

image-20231015151017186

点击立即购买并支付费用,支付成功后回到云耀服务器L实例控制台等待机器创建成功。

image-20231015151046647

3.1.1 云耀服务器L实例初始化配置

进入云耀服务器L实例控制台,可以看到我们购买的实例

单击实例,进入控制界面

image-20231015180752398

在这里可以看到此服务器的一些基本信息

image-20231015180806717

首先需要重置密码

image-20231015180841516

对于我们是下个步骤安装Discuz!Q过程中需要开放一些端口,所以还需要配置安全组规则

选择更改安全组,选择自己认为合适的安全组或者新建安全组规则

image-20231015180918968

image-20231015180945332

3.1.2 远程登录云耀服务器L实例

每个人的喜好不太一样,常用的shell登录终端有很多,这里我使用的是MobaXterm

MobaXterm是一款强大的终端工具,它集成了SSH客户端、X服务器和Unix命令集工具箱。在Windows操作系统下,MobaXterm可以帮助用户轻松地连接并操作Linux服务器。

MobaXterm具有以下特点:

  1. 集成了SSH客户端:MobaXterm通过内嵌SSH客户端,可以快速建立与Linux服务器的安全连接,实现远程登录和管理。
  2. 支持X服务器:MobaXterm集成了X服务器,可以在Windows上运行Unix/Linux环境,并支持图形界面应用程序。
  3. 提供Unix命令集:MobaXterm集成了Unix命令集(GNU/Cygwin),用户可以在Windows上运行大多数Linux命令,实现高效的终端操作。
  4. 多终端视窗:MobaXterm支持开启多个终端视窗,可以同时连接多个Linux服务器,并进行灵活的终端管理。
  5. 可扩展性强:MobaXterm可以通过集成插件来扩展功能,例如运行Gcc、Perl、Curl、Tcl/Tk/Expect等程序。
  6. 免费开源:MobaXterm分为免费开源版和收费专业版,用户可以免费使用开源版,并根据需求选择专业版以获得更多的功能和更好的技术支持。

新建ssh登录,填写云耀服务器L实例的ip和用户名并输入密码

image-20231015152615972

登录成功

image-20231015152717521

4. k8s部署

4.1 环境准备

关闭防火墙和selinux

systemctl stop firewalld

systemctl disable firewalld

sed -i 's/enforcing/disabled/' /etc/selinux/config

setenforce 0

关闭swap分区

swapoff -a    # 临时关闭
vim /etc/fstab # 注释到swap那一行  永久关闭

添加主机名与IP对应关系(三台主机都执行)

echo '''
10.0.1.176 k8s-master-176
10.0.1.177 k8s-node-177
10.0.1.178 k8s-node-178
''' >> /etc/hosts

各自修改主机名(从176-178各自顺序执行)

hostnamectl set-hostname k8s-master-176

hostnamectl set-hostname k8s-node-177

hostnamectl set-hostname k8s-node-178

将桥接的IPv4流量传递到iptables的链(三台主机都执行):

以下net.ipv4.ip_forward如存在=0,修改为1即可

cat > /etc/sysctl.d/k8s.conf << EOF
net.ipv4.ip_forward = 1
net.ipv4.tcp_tw_recycle = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

所有机器升级内核到最新

所有节点安装Docker/kubeadm/kubelet

4.2 Docker安装

参考docker安装使用文档进行安装 (注意:这里docker可以先安装18.09版本,yum install -y docker-ce-18.09 docker-ce-cli-18.09 containerd.io,后续有问题再升级到19.03.9版本,防止集成到k8s出现bug,这里我出现过k8s监控服务无法获取资源信息)

Docker配置修改,设置cgroup驱动,这里用systemd
配置修改为如下

vim /etc/docker/daemon.json

{
  "graph": "/data/docker",
  "registry-mirrors": ["https://01xxgaft.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

重启docker

systemctl restart docker

添加k8s华为云YUM软件源
所有机器执行

cat > /etc/yum.repos.d/kubernetes.repo << EOF[kubernetes]
name=Kubernetes
baseurl=https://mirrors.huaweicloud.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.huaweicloud.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.huaweicloud.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF[kubernetes]

安装kubeadm,kubelet和kubectl
所有机器执行

yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2

systemctl start kubelet

systemctl enable kubelet

部署k8s的master和node节点

部署master节点,在10.0.1.176执行
初始化master节点

kubeadm init   --apiserver-advertise-address=10.0.1.176 --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.16.0   --service-cidr=10.140.0.0/16 --pod-network-cidr=10.240.0.0/16

网段问题,两个网段不要重,后面是/16,不要与当前机器网段一样

这里执行完会生成一串命令用于node节点的加入,记录下来,接着执行以下命令

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

部署node节点,在10.0.1.177和178执行
这里复制上面生成的一串命令,我这里只是示例,命令根据你实际生成的复制去node节点执行

kubeadm join 10.0.1.176:6443 --token 1146ci.3elqkwg3b2sdqp6l --discovery-token-ca-cert-hash sha256:3562d07fbe47d39ddc04c9170464e2699f1328c08ded2bb0198bde9a55ce8e5e

安装网络插件

安装flannel插件
下载yaml文件

wget https://github.com/xuwei777/xw_yaml/blob/main/kube-flannel.yml

修改net-conf.json下面的网段为上面init pod-network-cidr的网段地址(必须正确否则会导致集群网络问题)

sed -i 's/10.244.0.0/10.240.0.0/' kube-flannel.yml

修改完安装插件,执行

kubectl apply -f kube-flannel.yml

kubectl get pods -n kube-system

4.3 测试kubernetes集群

在Kubernetes集群中创建一个pod,验证是否正常运行
创建一个pod,开放对外端口访问,这里会随机映射一个端口

kubectl create deployment nginx --image=nginx

kubectl expose deployment nginx --port=80 --type=NodePort

查看pod状态,必须是running状态而且ready是1,并查看nginx svc的80端口映射到了哪个端口

kubectl get pod,svc

访问任意机器的刚刚查看的映射端口,看看是否nginx已经运行

4.4 k8s常用命令

查看pod,service,endpoints,secret等等的状态

kubectl get 组件名      # 例如kubectl get pod   查看详细信息可以加上-o wide   其他namespace的指定 -n namespace名

创建,变更一个yaml文件内资源,也可以是目录,目录内包含一组yaml文件(实际使用中都是以yaml文件为主,直接使用命令创建pod的很少,推荐多使用yaml文件)

kubectl apply -f xxx.yaml    # 例如kubectl apply -f nginx.yaml   这里是如果没有则创建,如果有则变更,比create好用
删除一个yaml文件内资源,也可以是目录,目录内包含一组yaml文件

查看资源状态,比如有一组deployment内的pod没起来,一般用于pod调度过程出现的问题排查

kubectl describe pod pod名     # 先用kubectl get pod查看  有异常的复制pod名使用这个命令

查看pod日志,用于pod状态未就绪的故障排查

kubectl logs pod名     # 先用kubectl get pod查看  有异常的复制pod名使用这个命令

5. 总结

本文介绍了华为云耀服务器L实例的高性能、高可靠性、简单易用、灵活扩展和安全可靠等特点。L实例采用华为自研的最新一代虚拟化技术,提供自动化运维和智能管理平台,支持按需扩展资源,遵守国内外安全标准和法律法规,提供多种安全措施。此外,文章还介绍了部署华为云云耀服务器L实例的步骤,包括购买L实例、环境准备、Docker安装、测试Kubernetes集群和常用命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1095410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Golang】grpc环境踩的坑

关于’protoc-gen-go’ 不是内部或外部命令 这个问题的出现是因为没有这个文件导致的 这个文件要通过我们下载的google.golang.org这个文件编译生成的 这里建议下载google提供的grpc包 protobuf的源码&#xff1a; git clone https://github.com/golang/protobuf 下载好之后进…

华为云云耀云服务器L实例评测|企业项目最佳实践之建议与总结(十二)

华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践系列&#xff1a; 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测&#xff5c;企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测&#xff5…

RTSP协议

1 前言 RTSP协议作为音视频实时监控一个非常重要的协议&#xff0c;具有非常广泛的应用。RTSP由RFC 2326规范化&#xff0c;它允许客户端通过请求不同的媒体资源来控制流媒体服务器。RTSP是一种应用层协议&#xff0c;通常基于TCP连接&#xff0c;用于建立和控制媒体会话。这使…

【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程前言准备工具anaconda/cuda/cudnnanaconda创建环境(选做)安装原…

Jetpack:008-Icon与Image

文章目录 1. 概念介绍2. 使用方法2.1 Icon2.2 Image 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中与Button相关的内容&#xff0c;本章回中主要I con与Image。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍 我们在本章回中介绍…

graphviz报错

报错如下&#xff1a; graphviz.backend.ExecutableNotFound: failed to execute dot, make sure the Graphviz executables are on your systems PATH 大家习惯pip install graphviz去安装&#xff0c;但是graphviz是个软件&#xff0c;不能单独用Pip安装。 1、下载安装 G…

英语——语法——从句——非谓语动词——笔记

一、1定义 定义&#xff1a; 非谓语动词不是真正意义上的谓语动词&#xff0c;即在句中都不能单独作谓语。 非谓语动词主要有以下三种形式&#xff1a; 技巧&#xff1a;分析句子是先缩短为主谓宾&#xff0c;某人做某事&#xff0c;其他成分都是修饰限定作用。要么修饰明代词…

ECharts的基本使用

目录 一、使用前提 1、安装 2、创建文件 二、LineView.vue文件【相当于一个组件】 1、导入 2、methods方法下写init(){}方法进行选择 3、methods方法下写setOptioin(option) 4、init()函数调用 5、整合完整代码 三、IndexView.vue文件【实现组件引入显示】 1、引入 …

P34~36第八章相量法

8.1复数 复数可表示平面矢量、也可表示正弦量。特别是: 当复数表示正弦量的时候&#xff0c;此时复数称为相量。 8.2复数运算 复数除法也可看做乘法&#xff0c;乘法的几何意义是旋转&#xff08;辐角相加&#xff09;( e^x e^y e^xy)&#xff0c;同时伸缩&#xff08;模变…

计算机操作系统-第七天

1、计算机操作系统的结构&#xff08;续集&#xff09; 分层结构 特性&#xff1a;最底层是硬件&#xff0c;最高层是用户接口&#xff0c;每层只可使用更低的相邻层所提供的功能接口&#xff08;只有第一层可以直接操作硬件&#xff0c;第二次只能使用第一层提供的功能接口..…

英语——语法——从句——状语从句——笔记

一、概念 状语从句&#xff08;Adverbial Clause&#xff09;是指句子用作状语时&#xff0c;起副词作用的句子。状语从句中的从句可以修饰谓语。 状语从句根据其作用可分为时间、地点、原因、条件、目的、结果、让步、方式和比较等九 种状语从句。状语从句一般由连词(从属连词…

01_51单片机软件安装和使用

step1:keil软件安装 安装keil5&#xff1a;安装keil5 新用户进入官网下载需要先注册 官网&#xff1a;官网 嵌入式51开发资源百度网盘&#xff1a;江协科技 网盘地址&#xff1a;网盘地址 提取码&#xff1a;gdzf 桌面上出现该图标表示安装完成 双击图标打开对软件进行破…

向量空间概述

向量空间 向量空间与子空间 当存在这样的一组向量集合 V V V&#xff0c;其中 v &#xff0c; u &#xff0c; w v&#xff0c;u&#xff0c;w v&#xff0c;u&#xff0c;w分别为集合 V V V中的元素&#xff0c;以及存在标量c&#xff0c;d u v ∈ V uv \in V uv∈V u v …

【算法练习Day21】组合剪枝

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 组合剪枝总结&#xff1a; …

c语言练习88::移除链表元素

移除链表元素 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 代码&#xff1a; /*** Definition for sing…

基于Springboot宠物医院管理系统

项目环境&#xff1a; mysql5.7 jdk1.8

CSS之实现线性渐变背景

1. background: linear-gradient() background: linear-gradient是CSS中用于创建线性渐变背景的属性&#xff0c;这个属性允许你定义一个在元素的背景中进行渐变的效果&#xff0c;可以从一个颜色过渡到另一个颜色。 基本语法 background: linear-gradient(direction, color-…

Vue中this.$set()解决页面不更新问题

Vue中的this.$set()用于解决数据更新后页面没有更新的问题&#xff0c;因为Vue2中的双向数据绑定是通过object.defineproperty()实现的。通过get和set方法&#xff0c;获取时触发get&#xff0c;更改时触发set。但是对于对象属性的删除和添加与根据数组的下标去修改数据的时候是…

香港高才通通过后要做什么?

网上说现在香港高才通审核要一个月&#xff0c;所以最近没有每天关注&#xff0c;以为还要很久&#xff0c;结果今天打开邮箱&#xff0c;发现昨天就已经收到了我们一家人都审核通过的邮件&#xff0c;哈哈&#xff0c;开心… 今天整理了一下后续要做得事情&#xff1a; 缴费…

【LeetCode刷题(数据结构与算法)】:二叉树的中序遍历

给定一个二叉树的根节点root 返回它的中序遍历 示例1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&#xff1a;root [1] 输出&#xff1a;[1] 这里…