如何在kubernetes平台上搭建云idetheia(代码片段)

多鱼的夏天 多鱼的夏天     2022-10-21     730

关键词:

引言

随着开发人员的开发工具向云迁移,新的云IDE(集成开发环境)平台越来越多。

各种类型的设备都可以通过Web浏览器访问云IDE,它们为实时协作场景提供了许多便利。在云IDE中工作可以为你和你的团队提供统一的开发和测试环境,同时将平台不兼容性降至最低。因为它们本身就基于云技术,所以它们能够利用集群来完成任务,这远远超过了一台开发计算机的能力和可靠性。

Eclipse Theia 是一个可扩展的云IDE,运行在远程服务器上,可从Web浏览器访问。Theia 在外观和交互方面类似于 Microsoft Visual Studio Code,它支持多种编程语言,具有灵活的布局,并具有集成的终端。将Eclipse Theia与其他云IDE软件区别开来的是它的可扩展性 ,可以使用定制扩展对其进行修改,这允许你创建适合你需求的云IDE。

在本教程中,你将在 CSDN 开发云 上搭建最新版本的Eclipse Theia云IDE平台,并可以在公网上访问它,同时使用 Let’s Encrypt 证书来启动安全的 https 连接 ,并要求访问者进行身份验证。最后,你将通过 HTTPS 在你的Kubernetes集群上运行Eclipse Theia,并要求访问者登录。

先决条件

  • 需要你对 Kubernetes 中的 Node、Pod、ReplicaSet、Deployment、Service、Ingress、ConfigMap 等一些核心基础概念有一定的了解。如果你没有接触过 k8s,也完全可以按照教程完成云 IDE部署,然后在通过学习k8s官方文档 了解 Kubernetes 的各个组件
  • 有一个装有 k8s 的主机 。CSDN 开发云提供了k8s学习环境,按小时付费使用,每小时仅 0.07元。学习完毕后可以释放主机资源即会停止计费。 点这里一键拥有 k8s 环境
  • 拥有一个已备案的域名,DNS 解析到装有k8s的主机 IP

实践操作整个教程大概用时 10 分钟 至 30 分钟。本文章的YAML配置文件下载地址 k8s-examples/php

步骤1 - 安装 Eclipse Theia

首先,你将在你的DigitalOcean Kubernetes集群中安装Eclipse Theia。然后,你将使用Nginx Ingress在你想要的域中公开它

在本教程中,你将在本地计算机上将部署配置存储在一个名为eclipse-theia.yaml的文件中。使用以下命令创建它:

nano eclipse-theia.yaml

将以下内容添加到文件eclipse-theia.yaml中:

apiVersion: v1
kind: Namespace
metadata:
  name: theia
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: theia-next
  namespace: theia
spec:
  rules:
  - host: <your_domain>
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: theia-next
            port:
              number: 80
---
apiVersion: v1
kind: Service
metadata:
 name: theia-next
 namespace: theia
spec:
 ports:
 - port: 80
   targetPort: 3000
 selector:
   app: theia-next
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: theia-next
  name: theia-next
  namespace: theia
spec:
  selector:
    matchLabels:
      app: theia-next
  replicas: 1
  template:
    metadata:
      labels:
        app: theia-next
    spec:
      containers:
      - image: francoisvans/theia-docker-test
        imagePullPolicy: Always
        name: theia-next
        ports:
        - containerPort: 3000

此配置定义了命名空间、部署、服务和入口。命名空间称为theia,它包含与Eclipse Theia相关的所有Kubernetes对象。该部署由一个Theia Docker镜像实例组成,容器上暴露了端口3000。该服务查找部署,并将容器端口重新映射到常见的HTTP端口80,从而允许集群内访问Eclipse Theia。

Ingress 包含一个规则,用于在所需域的外部端口80为服务提供服务。

请将文件中your_domain替换为你指向集群负载均衡的所需域名,然后保存并退出编辑该文件。

然后,通过运行以下命令在Kubernetes中创建配置:

kubectl apply -f eclipse-theia.yaml

输出将如下所示:

namespace/theia created
ingress.networking.k8s.io/theia-next created
service/theia-next created
deployment.apps/theia-next created

你可以通过运行以下命令来查看Eclipse Theia Pod的创建过程:

kubectl get pods -w -n theia

-w 表示命令不退出,持续监视输出的变化

-n 指定命名空间

输出将如下所示:

NAME                          READY   STATUS    RESTARTS   AGE
theia-next-656dcc9797-ks7v4   1/1     Running   0          5m47s

一段时间后,状态会变为RUNNING,表示你已成功将Eclipse Theia安装到你的集群中。你可以使用 Ctrl+C中断命令。

在浏览器中导航到你的域。你将看到默认的Eclipse Theia编辑器图形用户界面:

以上是默认的Eclipse Theia编辑器图形用户界面

你已经将Eclipse Theia部署到你的 Kubernetes集群中,并使用Inress将其公开到你想要的域中。接下来,你将通过启用登录身份验证来保护对你的Eclipse Theia部署的访问。

步骤 2 - 使用Let’s Encrypt HTTPS证书

接下来,你将通过将 Let’s Encrypt 证书应用到你的 Ingress 来保护你的 Eclipse Theia 安装,Cert-Manager 将自动配置该证书。完成此步骤后,你的 Eclipse Theia 安装将可通过 HTTPS 访问。

安装证书管理器Cert-Manager ,执行以下命令安装Cert-Manager

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.2/cert-manager.yaml

命令执行输出如下

namespace/cert-manager created
customresourcedefinition.apiextensions.k8s.io/certificaterequests.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/certificates.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/challenges.acme.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/clusterissuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/issuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/orders.acme.cert-manager.io created
serviceaccount/cert-manager-cainjector created
serviceaccount/cert-manager created
serviceaccount/cert-manager-webhook created
configmap/cert-manager-webhook created
clusterrole.rbac.authorization.k8s.io/cert-manager-cainjector created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-issuers created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-clusterissuers created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-certificates created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-orders created
apiVersion: cert-manager.io/v1
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-challenges created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-ingress-shim created
clusterrole.rbac.authorization.k8s.io/cert-manager-view created
clusterrole.rbac.authorization.k8s.io/cert-manager-edit created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-approve:cert-manager-io created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-certificatesigningrequests created
clusterrole.rbac.authorization.k8s.io/cert-manager-webhook:subjectaccessreviews created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-cainjector created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-issuers created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-clusterissuers created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-certificates created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-orders created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-challenges created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-ingress-shim created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-approve:cert-manager-io created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-certificatesigningrequests created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-webhook:subjectaccessreviews created
role.rbac.authorization.k8s.io/cert-manager-cainjector:leaderelection created
role.rbac.authorization.k8s.io/cert-manager:leaderelection created
role.rbac.authorization.k8s.io/cert-manager-webhook:dynamic-serving created
rolebinding.rbac.authorization.k8s.io/cert-manager-cainjector:leaderelection created
rolebinding.rbac.authorization.k8s.io/cert-manager:leaderelection created
rolebinding.rbac.authorization.k8s.io/cert-manager-webhook:dynamic-serving created
service/cert-manager created
service/cert-manager-webhook created
deployment.apps/cert-manager-cainjector created
deployment.apps/cert-manager created
deployment.apps/cert-manager-webhook created
mutatingwebhookconfiguration.admissionregistration.k8s.io/cert-manager-webhook created
validatingwebhookconfiguration.admissionregistration.k8s.io/cert-manager-webhook created

我们可以通过使用如下命令来等待安装何时完成

kubectl --namespace cert-manager get pods -w

命令输出如下

NAME                                       READY   STATUS              RESTARTS   AGE
cert-manager-cainjector-5987875fc7-dclv7   0/1     ContainerCreating   0          8s
cert-manager-6dd9658548-td7zx              0/1     ContainerCreating   0          8s
cert-manager-webhook-7b4c5f579b-bwr69      0/1     ContainerCreating   0          8s

直到所有 pod 都处于Running 状态,按Ctrl+C 退出

下面添加配置为使用 Let’s Encrypt 的颁发者可以让你为集群的服务动态获取新证书。

新建文件letsencrypt-issuer-staging.yaml

nano letsencrypt-issuer-staging.yaml

内容如下,替换<your_email>为你的邮箱

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
spec:
  acme:
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    email: <your_email>
    privateKeySecretRef:
      name: letsencrypt-staging
    solvers:
    - http01:
        ingress:
          class: traefik

创建ClusterIssuer

kubectl apply -f letsencrypt-issuer-staging.yaml

我们可以使用如下命令查看ClusterIssuer的状态

kubectl  get clusterissuer

输出如下,你看到ClusterIssuer的状态正常,下面我们使用ClusterIssuer来颁发证书

NAME                  READY   AGE
letsencrypt-staging   True    68s

打开eclipse-theia.yaml编辑:

nano eclipse-theia.yaml

添加以下内容到你的文件中,确保将<your_domain>替换为你自己的域名:

eclipse-theia.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: theia
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: theia-next
  namespace: theia
  annotations:
    kubernetes.io/ingress.class: traefik
    cert-manager.io/cluster-issuer: letsencrypt-staging 
spec:
  tls:
  - hosts:
    - <your_domain>
    secretName: theia-prod
  rules:
  - host: <your_domain>
    http:
...

首先,你将letsencrypt-staging 作为先决条件的一部分创建的 ClusterIssuer 指定为将用于为此 Ingress 提供证书的颁发者。然后,在该tls部分中,你指定应该保护的确切域,以及将持有这些证书的Secret的名称。

通过运行以下命令将更改应用到集群:

kubectl apply -f eclipse-theia.yaml

输出将如下所示:

Outputnamespace/theia unchanged
ingress.networking.k8s.io/theia-next configured
service/theia-next unchanged
deployment.apps/theia-next unchanged

配置和完全应用证书需要几分钟时间。你可以通过观察以下命令的输出来跟踪进度:

kubectl describe certificate theia-prod -n theia

完成后,输出的结尾将类似于以下内容:

Events:
  Type    Reason     Age   From                                       Message
  ----    ------     ----  ----                                       -------
  Normal  Issuing    17m   cert-manager-certificates-trigger          Issuing certificate as Secret does not exist
  Normal  Generated  17m   cert-manager-certificates-key-manager      Stored new private key in temporary Secret resource "theia-prod-4x886"
  Normal  Requested  17m   cert-manager-certificates-request-manager  Created new CertificateRequest resource "theia-prod-nq47r"
  Normal  Requested  14m   cert-manager-certificates-request-manager  Created new CertificateRequest resource "theia-prod-9z7c8"
  Normal  Issuing    14m   cert-manager-certificates-issuing          The certificate has been successfully issued

在浏览器中刷新你的域。你会在地址栏的最左侧看到一个绿色挂锁,表示连接是安全的。

你已将 Ingress 配置为使用 Let’s Encrypt 证书,从而使你的 Eclipse Theia 部署更加安全。

步骤 3 - 为域启用登录身份验证

在本步骤中,你将为你的Eclipse Theia部署启用用户名和密码身份验证。你将通过首先使用htpasswd实用程序管理有效的登录组合列表来实现这一点。然后,你将创建一个包含该列表的Kubernetes Secret,并配置Inress以根据它对访问者进行身份验证。最后,只有当访问者输入有效的用户名和密码组合时,你的域才能访问。这将防止访客和其他不受欢迎的访问者访问Eclipse Theia。

htpasswd实用程序来自Apache Web服务器,用于创建存储登录组合列表的文件。htpasswd文件的格式是每行一个用户名:哈希_密码组合,这是入口控制器期望列表遵循的格式。

首先,更新包管理器缓存:

sudo apt update

然后,通过运行以下命令在你的系统上安装htpasswd

sudo apt install apache2-utils -y

你将把该用户名密码列表存储在一个名为auth的文件中。通过运行以下命令来创建它:

touch auth

This file needs to be named auth because the Nginx Ingress Controller expects the secret to contain a key called data.auth. If it’s missing, the controller will return HTTP 503 Service Unavailable status.

此文件需要命名为auth,因为Inress控制器希望该密钥包含一个名为data.auth的密钥。如果丢失,控制器会返回HTTP503服务不可用状态。

通过运行以下命令将用户名和密码组合添加到auth中:

htpasswd auth <username>

请记住将<username>替换为你想要的用户名。系统将要求你输入附带的密码,密码组合将被添加到auth文件中。你可以对需要添加的用户重复此命令。

例如你添加了一个用户名和密码都是test的条目,文件内容显示如下

#cat auth
test:$apr1$Z9L1riZh$MtI/Msrn2exkkVzM/W/Ua0

注意:如果你正在操作的系统没有安装htpasswd,你可以使用Dockeralized版本。

You’ll need to have Docker installed on your machine. For instructions on how to do so, visit the official docs.

你需要在你的计算机上安装Docker。有关如何做到这一点的说明,请访问官方文档。

运行以下命令以运行停靠版本:

docker run --rm -it httpd htpasswd -n <username>

请记住将<username>替换为你要使用的用户名。系统会要求你输入密码。哈希登录密码会写在控制台上,你需要手动将其添加到auth文件的末尾。重复此过程,以添加任意数量的登录。

完成后,通过运行以下命令在Kubernetes中使用文件内容创建新密码:

kubectl create secret generic theia-basic-auth --from-file=auth -n theia

以上命令输出如下

secret/theia-basic-auth created

你可以通过以下方式查看 创建的secret:

kubectl get secret theia-basic-auth -o yaml -n theia

输出如下所示:

apiVersion: v1
data:
  auth: dGVzdDokYXByMSRaOUwxcmlaaCRNdEkvTXNybjJleGtrVnpNL1cvVWEwCg==
kind: Secret
metadata:
  creationTimestamp: "2022-07-13T06:01:34Z"
  name: theia-basic-auth
  namespace: theia
  resourceVersion: "6417"
  uid: 90404f7d-260f-4e2c-9504-98fb7351fc07
type: Opaque

接下来,你需要编辑Ingress使其使用该密码。打开展开配置以进行编辑:

nano eclipse-theia.yaml

将以下内容中的annotations部分添加到文件eclipse-theia.yaml中:

apiVersion: v1
kind: Namespace
metadata:
  name: theia
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: theia-next
  namespace: theia
  annotations:
    kubernetes.io/ingress.class: traefik
    ingress.kubernetes.io/auth-type: basic
    ingress.kubernetes.io/auth-secret: theia-basic-auth
    ingress.kubernetes.io/auth-realm: 'Authentication Required - Eclipse Theia'
spec:
  rules:
...

首先,在auth-type注释中,指定身份验证类型为basic。这意味着Ingress将要求用户输入用户名和密码。然后,在auth-secret中,指定包含有效验证列表的Secret为你刚刚创建的theia-base-auth。剩下的auth-realm注释指定了一条消息,该消息将显示给用户,解释为什么需要身份验证。你可以根据自己的喜好更改此字段中包含的消息。

保存并关闭该文件。要将更改应用到你的群集,请运行以下命令:

kubectl apply -f eclipse-theia.yaml

你将看到输出:

namespace/theia unchanged
ingress.networking.k8s.io/theia-next configured
service/theia-next unchanged
deployment.apps/theia-next unchanged

在浏览器中访问你的域名,现在将要求你登录。

你已经在Ingress上启用了基本登录身份验证,方法是将其配置为使用包含用户名和密码组合的screct。在下一步中,你将通过添加TLS证书进一步保护访问,以便你和你的Eclipse Theia部署之间的通信保持加密。

步骤 4 - 使用Eclipse Theia界面

在这一节中,你将尝试使用一些Eclipse Theia界面的功能

在IDE的左侧,有一排垂直的四个按钮,可以打开侧面板中最常用的功能。

此栏是可自定义的,你可以将这些视图移动到不同的顺序或从栏中删除它们。默认情况下,第一个视图打开资源管理器面板,该面板提供项目结构的树状导航。你可以在此处管理你的文件夹和文件-根据需要创建、删除、移动和重命名它们。

通过文件菜单创建新文件后,你将在新选项卡中看到一个空文件打开。保存后,你可以在资源管理器侧面板中查看该文件的名称。要创建文件夹,请右击资源管理器侧边栏,然后单击新建文件夹。你可以通过单击文件夹名称以及将文件和文件夹拖放到层次结构的较高部分来展开文件夹,以将它们移动到新位置。

下一个选项提供对搜索和替换功能的访问。在此之后,下一个选项提供你可能正在使用的源代码控制系统的视图,例如Git。

下一个视图是调试器选项,它提供了在面板中进行调试的所有常见操作。可以将调试配置保存在Launch.json文件中。

最后一个选项允许你查看和安装扩展

图形用户界面的中心部分是你的编辑器,你可以使用选项卡将其分开,以便进行代码编辑。你可以将编辑视图更改为网格系统或并排文件。与所有现代IDE一样,Eclipse Theia支持代码的语法突出显示。

你可以通过键入 CTRL+SHIFT+` 或点击上部菜单中的终端并选择新建终端来访问终端。终端将在下面的面板中打开,其工作目录将设置为项目的工作区,其中包含资源管理器侧面板中显示的文件和文件夹。

你已经了解了Eclipse Theia界面的一些最常用的特性。

如果你希望卸载集群上的Eclipse Theia部署,请运行以下命令:

kubectl delete -f eclipse-theia.yaml

结论

现在,你已经在DigitalOcean Kubernetes集群上安装了Eclipse Theia,这是一种多功能的云IDE。你已经用免费的TLS证书保护了它,让我们加密TLS证书,并设置实例以要求访问者登录。你可以单独处理源代码和文档,也可以与你的团队协作。如果你需要其他功能,也可以尝试构建你自己版本的Eclipse Theia。有关如何做到这一点的更多信息,请访问Theia文档

本文根据How To Set Up the Eclipse Theia Cloud IDE Platform on DigitalOcean Kubernetes 改编
文章许可使用CC BY-NC-SA 4.0 协议

如何在kubernetes上搭建code-server云ide平台(代码片段)

引言随着开发人员工具向云迁移,云IDE(集成开发环境)平台的创建和采用越来越多。云IDE允许开发团队之间的实时协作,以便在统一的开发环境中工作,从而最大限度地减少不兼容性并提高生产率。通过Web浏览器可以... 查看详情

如何在kubernetes平台上搭建云idetheia(代码片段)

...求访问者进行身份验证。最后,你将通过HTTPS在你的Kubernetes集 查看详情

如何在kubernetes上搭建code-server云ide平台(代码片段)

...头始终有一个一致的开发环境。在本教程中,你将在Kubernetes集群上设置code-server云IDE平台,并在你的域中公开它,并使用Let’sEncrypted证书进行保护。最后,你将拥有在你的Kubernetes集群上运行的MicrosoftVisualStudio代... 查看详情

kubernetes平台上更安全的构建容器镜像工具-kaniko

背景在云原生趋势下,用容器的方式来进行软件产品交付越来越普通,对于云原生的DevOps,它的CICD环境完全运行在容器中,镜像的构建也是在容器中完成的。而我们不仅要考虑如何在容器中成功构建镜像,也需要考虑如何以更... 查看详情

如何在kubernetes上构建新的应用管理平台?

【导语】云原生时代,直接使用Kubernetes和云基础设施过于复杂,如用户需要学习很多底层细节、应用管理的上手成本高、容易出错、故障频频。随着云计算的普及,不同云又有不同的细节,进一步加剧了上述问题... 查看详情

openyurtv1.2新版本深度解读:五步搭建一个openyurt集群(代码片段)

...侵入云原生边缘计算平台近期迎来了v1.2.0版本的发布,在Kubernetes无侵入、云边端全协同、跨网络域通信等特性上持续发力,深入打造OpenYurt+Kubernetes实现海量边缘计算业务的持续交付与高效运维管理能力。作者:苏杭、敬易OpenYur... 查看详情

kubernetes平台的生态系统介绍

Kubernetes作为一个容器云管理平台,与底层的基础架构、企业周边的公共服务形成了一个完备的生态系统。如图1所示,一个完备的Kubernetes系统在设计和实现时,需要考虑多层面的高可用性问题。图1 Kubernetes平台的生... 查看详情

云原生之kubernetes实战在kubernetes集群下部署rainbond平台

【云原生之kubernetes实战】在kubernetes集群下部署Rainbond平台一、Rainbond介绍1.Rainbond简介2.Rainbond特点二、检查本地kubernetes集群状态1.检查工作节点状态2.检查系统pod状态三、安装nfs共享存储1.安装nfs2.配置共享目录3.使配置生效4.设置... 查看详情

快速搭建kubernetes容器集群平台(kubeadm)

kubeadm简介kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署: #创建一个Master节点kubeadminit#将一个Node节点加入到当前集群中kubeadmjoin<Master节点的IP和端口> 1.... 查看详情

如何在不同平台上搭建flutter开发环境(代码片段)

...上调试和打包程序内容总结我们可以到官网的文档中查看如何搭建Flutter的开发环境,写的十分详细,不过有种比较散乱的感觉,没有一个整体的流程。我结合官方文档以及自已的实际操作来演示如何搭建Flutter开发环境。整体思... 查看详情

演进实录|不同阶段的企业如何搭建监控体系?

...选型与平台搭建思路与实践关键点。来看看阿里云会给出如何的最佳实践!作者|涯海在陪伴众多企业共同经历业务上云与云上原生之后,我们可以看到每个企业的运维监控体系搭建过 查看详情

在kyma云原生平台上开发并部署node.js应用

...网​​得知,Kyma是一个云原生应用程序运行环境,它将Kubernetes提供的强大容器编排功能与若干世界级的开源组件和工具相结合,使开发人员能够开发、运行和操作安全且可扩展的云原生应用程序。Kubernetes提供了一个框架,用于... 查看详情

谷歌云平台 Kubernetes 的云位置(GKE)

】谷歌云平台Kubernetes的云位置(GKE)【英文标题】:googlecloudplatformCloudlocationsforKubernetes(GKE)【发布时间】:2020-07-1810:48:36【问题描述】:您知道在哪里查找有关设置将容器和卷分配到位置的信息吗?以下链接表明KubernetesEngine是... 查看详情

云原生之kubernetes实战在k8s环境下部署kubegems云管理平台

【云原生之kubernetes实战】在k8s环境下部署KubeGems云管理平台一、KubeGems介绍1.KubeGems简介2.KubeGems特点3.KubeGems产品生态二、检查本地k8s环境1.检查工作节点状态2.检查系统pod状态三、安装KubeGemsInstaller控制器1.KubeGemsInstaller介绍2.创建... 查看详情

如何在微软azure上搭建个人博客网站

...经历繁琐的服务器配置过程。本期的教程,我们就来探讨如何在微软Azure上以快捷的方式来搭建一个WordPress站点。什么是AzureMicrosoftAzure是微软的公共云服务平台,是微软在 查看详情

AWS 云提供商上的 Kubernetes

】AWS云提供商上的Kubernetes【英文标题】:KubernetesonAWScloudprovider【发布时间】:2016-03-3106:00:48【问题描述】:我在AWS上安装了CentOSAtomicHost作为kubernetes的操作系统。一切正常,但似乎我错过了什么。我没有配置云提供商,也找不... 查看详情

kubernetes(k8s)笔记总结(代码片段)

提示:kubernetes篇章开启。文章目录1.云平台2.私有网络VPC(重点!!!)3.Kubernetes介绍4.k8s架构5.kubectl和kubeadm6.三台云服务器的安装部署7.Kubernetes环境搭建7.1安装docker环境7.2安装k8s的预备环境8.kubernetes集群安装的三大... 查看详情

基于arduino和iot云平台搭建物联网系统

在这篇文章中,我们将介绍如何搭建一款监测土壤水分的物联网系统,用于在土壤干燥时发出警报,提醒用户。本项目使用了IoT云平台来管理警报系统,同时存储来自传感器的数据。众所周知,物联网是当今热门话题之一,它将... 查看详情