使用应用程序互连 CLI
使用应用程序 Interconnect 1.0 LIMITED AVAILABILITY
摘要
前言 复制链接链接已复制到粘贴板!
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始: master、slave、blacklist 和 whitelist。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
这个有限可用性发行版本并不适用于所有客户。如果您有兴趣了解有关应用程序互联的更多信息,请联系红帽销售 部门。
使用 skupper 命令行界面(CLI)可让您从当前命名空间的上下文创建和管理应用程序互联站点。
典型的工作流是创建站点、将站点链接在一起,并将服务公开给服务。
第 1 章 安装 skupper CLI 复制链接链接已复制到粘贴板!
安装 skupper 命令行界面(CLI)提供了使用应用程序交互的简单方法。
流程
- 确定您的订阅已激活,并且您的系统已注册。
订阅所需的软件仓库:
- Red Hat Enterprise Linux 8
sudo subscription-manager repos --enable=application-interconnect-1-for-rhel-8-x86_64-rpms
$ sudo subscription-manager repos --enable=application-interconnect-1-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
yum或dnf命令安装skupper软件包:sudo yum install skupper-cli
$ sudo yum install skupper-cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证安装。
skupper version
$ skupper version client version 1.0.2-redhat-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 使用 CLI 创建站点 复制链接链接已复制到粘贴板!
服务网络由应用程序互连站点组成。这部分论述了如何使用默认设置创建站点。
先决条件
-
已安装
skupperCLI。 - 已登录到集群。
- 要在服务网络上公开的服务在活跃命名空间中。
流程
创建默认站点:
skupper init
$ skupper initCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查站点:
skupper status
$ skupper status Skupper is enabled for namespace "west" in interior mode. It is not connected to any other sites.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当您在没有安装策略系统的集群上初始化站点时,会显示 default 信息。如果您使用策略安装策略系统(如使用策略 保护服务网络) 中所述,则会
让消息成为 Skupper,在 interior 模式(具有策略)中启用了命名空间"west"。
默认站点设置包括:
-
Console - 使用单个用户置备 Skupper 控制台。
admin用户的密码存储在skupper-console-users机密中。有关控制台的更多信息,请参阅使用 Skupper 控制台。 -
站点名称 - 站点名称默认为命名空间名称,如
west。 -
Ingress - 创建一个入口来支持到您要创建的站点的链接。默认情况下会创建一个路由。如果您不希望其他站点链接到这个站点,您可以指定
--ingress none。不支持其他入口选项。
第 3 章 自定义站点 复制链接链接已复制到粘贴板!
默认的 skupper init 创建了满足典型要求的网站。
如果您需要自定义配置,请注意以下选项:
在没有控制台的情况下创建站点:
skupper init --enable-console false
$ skupper init --enable-console falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置控制台身份验证.有关控制台身份验证的多个选项:
--console-auth <authentication-mode>为控制台设置验证模式:
-
OpenShift - 使用 OpenShift 身份验证,以便有权访问 OpenShift 的用户并查看项目(命名空间)可以查看控制台。
-
内部- 使用应用程序互连身份验证,请参阅console-user和console-password选项。 -
Unsecured - 无身份验证,具有 URL 的任何人都可以查看控制台。
-
OpenShift - 使用 OpenShift 身份验证,以便有权访问 OpenShift 的用户并查看项目(命名空间)可以查看控制台。
--console-user <username>-
当身份验证模式设置为
内部时,控制台用户的用户名。默认为admin。 --console-password <password>-
当身份验证模式设置为
内部时,控制台用户的密码。若不指定,将生成随机密码。
配置服务访问
skupper init --create-network-policy
$ skupper init --create-network-policyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意所有站点都与这个过程中称为 活跃命名空间 的命名空间关联。
根据集群网络策略,活跃命名空间中的服务可能会可以被该集群上的其他命名空间中的 pod 访问。因此,您可以在不直接连接到服务网络的命名空间中向 pod 公开服务。此设置应用网络策略,以限制对活跃命名空间中的 pod 的访问。
例如,如果您在
clusterA的命名空间projectA中创建站点,并将该站点链接到提供数据库服务的服务网络,则数据库服务可供clusterA的projectB中的 pod 使用。您可以使用
--create-network-policy选项,将数据库服务访问限制为clusterA的projectA。
第 4 章 链接站点 复制链接链接已复制到粘贴板!
服务网络由应用程序互连站点组成。这部分论述了如何链接站点组成服务网络。
连接两个站点需要单一初始双向连接。但是:
- 两个站点之间的通信是双向的,只有初始链接是双向的。
- 链接方向的选择通常由可访问性决定。例如,如果您使用 CodeReady Containers 集群链接了 OpenShift Dedicated 集群,您必须将 CodeReady Containers 集群链接到 OpenShift Dedicated 集群,因为该路由可以访问。
流程
- 确定链接的方向。如果两个集群都是可公开的地址,则方向并不重要。如果其中一个集群可以被其他集群寻址,请在可寻址集群中执行下面的第 2 步。
在您要链接的集群中生成令牌:
skupper token create <filename>
$ skupper token create <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中 &
lt;filename> 是保存在本地文件系统中的 YAML 文件的名称。此文件包含密钥以及创建该文件的站点的位置。
注意访问此文件提供对服务网络的访问。适当保护它。
有关保护对服务网络的访问的更多信息,请参阅使用 Skupper 令牌。
使用您要从中连接的集群上的令牌:
创建指向服务网络的链接:
skupper link create <filename> [-name <link-name>]
$ skupper link create <filename> [-name <link-name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<filename> 是从skupper token create命令生成的 YAML 文件的名称,<link-name> 是链接的名称。检查链接:
skupper link status
$ skupper link status Connection for link1 not activeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,没有指定 <link-name>,其名称默认为
link1。
如果要删除链接:
skupper link delete <link-name>
$ skupper link delete <link-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<link-name> 是创建过程中指定的链接的名称。
第 5 章 从命名空间公开服务在服务网络中 复制链接链接已复制到粘贴板!
创建服务网络后,公开的服务可以在该网络中进行通信。
skupper CLI 有两个选项来公开命名空间中已存在的服务:
-
公开支持简单的用例,例如通过单个服务进行部署。具体步骤请查看 第 5.1 节 “在服务网络中公开简单服务”。 -
服务绑定是一种更灵活的方法,例如,如果您拥有多个部署服务。具体步骤请查看 第 5.2 节 “在服务网络上公开复杂服务”。服务创建和
5.1. 在服务网络中公开简单服务 复制链接链接已复制到粘贴板!
这部分论述了如何为服务网络启用用于简单用例的服务。
流程
在其中一个站点中创建部署、一些 pod 或服务,例如,为 教程 创建后端服务:
kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend
$ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此步骤不是特定于应用程序的连接,此过程与集群的标准进程没有改变。
创建可以在服务网络中进行通信的服务:
skupper expose [deployment <name>|pods <selector>|statefulset <statefulsetname>|service <name>]
$ skupper expose [deployment <name>|pods <selector>|statefulset <statefulsetname>|service <name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
-
<name> 是部署的名称 -
<selector> 是一个 pod 选择器 -
<statefulsetname> 是 statefulset 的名称
对于第 1 步部署示例,您可以使用以下命令创建服务:
skupper expose deployment/hello-world-backend --port 8080
$ skupper expose deployment/hello-world-backend --port 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令的选项包括:
-
--port <port-number> :: 指定该服务在服务网络上可用的端口号。注意:您可以通过重复此选项来指定多个端口。 -
--target-port <port-number> :: 指定您要公开的 pod 的端口号。 -
--protocol <protocol> 允许您指定要使用的协议、tcp、http或http2
-
如果您没有指定端口,skupper 使用部署的 containerPort 值。
5.2. 在服务网络上公开复杂服务 复制链接链接已复制到粘贴板!
这部分论述了如何在更复杂的用例中为服务网络启用服务。
流程
在其中一个站点中创建部署、一些 pod 或服务,例如,为 教程 创建后端服务:
kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backend
$ kubectl create deployment hello-world-backend --image quay.io/skupper/hello-world-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此步骤不是特定于应用程序的连接,此过程与集群的标准进程没有改变。
创建可以在服务网络中进行通信的服务:
skupper service create <name> <port>
$ skupper service create <name> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
-
<name> 是您要创建的服务的名称 -
<port> 是服务使用的端口
对于第 1 步部署示例,您可以使用以下命令创建服务:
skupper service create hello-world-backend 8080
$ skupper service create hello-world-backend 8080Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将服务绑定到集群服务:
skupper service bind <service-name> <target-type> <target-name>
$ skupper service bind <service-name> <target-type> <target-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
-
<service-name> 是服务网络上的服务的名称 -
<target-type> 是您要公开的对象、部署、stateset、pod或服务。 -
<target-name> 是集群服务的名称 -
--protocol <protocol> 允许您指定要使用的协议、tcp、http或http2
对于第 1 步部署示例,您可以使用以下命令绑定该服务:
skupper service bind hello-world-backend deployment hello-world-backend
$ skupper service bind hello-world-backend deployment hello-world-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
第 6 章 从本地机器在服务网络中公开服务 复制链接链接已复制到粘贴板!
创建服务网络后,您可以从服务网络上的本地机器公开服务。
例如,如果您在数据中心中的服务器中运行数据库,您可以部署一个前端来访问数据,就像数据库在集群中运行一样。
6.1. 将简单的本地服务公开给服务网络 复制链接链接已复制到粘贴板!
本节演示了如何公开在服务网络中本地运行的单个服务。
先决条件
- 服务网络。只需要一个网站。
- 访问服务网络。
-
用于默认
服务类型网关的skrouterd
流程
- 本地运行您的服务。
- 登录到集群并切换到站点的命名空间。
在服务网络中公开服务:
skupper gateway expose <service> localhost <port>
$ skupper gateway expose <service> localhost <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - <service> - 服务网络上的服务名称。
- <port> - 本地运行该服务的端口。
注意您还可以从本地网络中的其他机器公开服务,例如,如果 MySQL 在专用服务器(IP 地址为
192.168.1.200)上运行,但您要在同一网络中的机器访问集群:skupper gateway expose mysql 192.168.1.200 3306
$ skupper gateway expose mysql 192.168.1.200 3306Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Skupper 网关的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这表明只有一个公开的服务,该服务仅公开一个端口(BIND)。没有端口转发到本地主机。
URL 字段显示底层通信,可以忽略。
6.2. 在服务网络上使用复杂的本地服务 复制链接链接已复制到粘贴板!
本节显示更多对 skupper 网关的使用。
创建一个 Skupper 网关:
skupper gateway init --type <gateway-type>
$ skupper gateway init --type <gateway-type>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意default 服务类型网关需要
skrouterd正在运行。默认情况下会创建 服务类型 网关,但也可以指定:
-
podman -
docker
-
创建可以在服务网络中进行通信的服务:
skupper service create <name> <port>
$ skupper service create <name> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
-
<name> 是您要创建的服务的名称 -
<port> 是服务使用的端口
例如:
skupper service create mydb 3306
$ skupper service create mydb 3306Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在服务网络中绑定服务:
skupper gateway bind <service> <host> <port>
$ skupper gateway bind <service> <host> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<service> - 服务网络上的服务名称(上例中的
mydb)。 - <host> - 运行该服务的主机。
-
<port> - 服务在上面的示例中正在运行的端口
3306。
-
<service> - 服务网络上的服务名称(上例中的
检查 Skupper 网关的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这表明只有一个公开的服务,该服务仅公开一个端口(BIND)。没有端口转发到本地主机。
URL 字段显示底层通信,可以忽略。
您可以在服务网络中创建更多服务,并将更多本地服务绑定在服务网络上公开这些服务。
将服务从服务网络转发到本地机器。
skupper gateway forward <service> <port>
$ skupper gateway forward <service> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
-
<service> 是服务网络上现有服务的名称。 -
<port> 是您要使用的本地机器上的端口。
-
6.3. 创建网关并将其应用到另一台机器上 复制链接链接已复制到粘贴板!
如果可以从一台机器访问集群,但希望从其他机器创建到服务网络的网关捆绑包,您可以在第一个机器上创建网关定义捆绑包,然后稍后在第二个机器上应用该捆绑包,如此流程所述。例如,如果要将本地数据库服务公开给服务网络,但您不想从数据库服务器访问集群,您可以使用此流程来创建定义捆绑包,并在数据库服务器中应用它。
流程
- 从第一个机器登录到集群,并切换到站点的命名空间。
创建可以在服务网络中进行通信的服务:
skupper service create <name> <port>
$ skupper service create <name> <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
-
<name> 是您要创建的服务的名称 -
<port> 是服务使用的端口
例如:
skupper service create database 5432
$ skupper service create database 5432Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
创建一个 YAML 文件来表示您要公开的服务,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用网关名称保存 YAML 文件,如
gateway.yaml。 生成可应用到您要在服务网络中公开的服务的机器的捆绑包:
skupper gateway generate-bundle <config-filename> <destination-directory>
$ skupper gateway generate-bundle <config-filename> <destination-directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- <config-filename> - YAML 文件的名称,包括您在上一步中生成的后缀。
-
<destination-directory> - 要保存生成的网关捆绑包的位置,如
~/gateways。
例如:
skupper gateway generate-bundle database.yaml ./
$ skupper gateway generate-bundle database.yaml ./Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此捆绑包包含网关定义 YAML 和允许访问服务网络的证书。
-
将网关定义文件,例如
mylaptop-jdoe.tar.gz复制到托管您要在服务网络上公开的服务的机器。 从托管您要公开的服务的机器中:
mkdir gateway tar -xvf <gateway-definition-file> --directory gateway cd gateway sh ./launch.py
$ mkdir gateway $ tar -xvf <gateway-definition-file> --directory gateway $ cd gateway $ sh ./launch.pyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用
./launch.py -t podman或./launch.py -t docker在容器中运行应用程序互联路由器。运行网关捆绑包使用网关定义 YAML 和证书来访问服务并在服务网络上公开该服务。
检查网关服务的状态:
检查 服务类型 网关:
systemctl --user status <gateway-definition-name>
$ systemctl --user status <gateway-definition-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 podman 类型网关:
podman inspect
$ podman inspectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 docker 类型网关:
docker inspect
$ docker inspectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意以后您可以使用
./remove.py删除网关。在具有集群访问权限的机器中检查 Skupper 网关的状态:
skupper gateway status
$ skupper gateway status Gateway Definitions Summary NAME BINDS FORWARDS URL <machine-name> 1 0 amqp://127.0.0.1:5672Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这表明只有一个公开的服务,该服务仅公开一个端口(BIND)。没有端口转发到本地主机。
如果您需要更改网关定义,例如更改端口,您需要删除现有网关并从开始重复此步骤以重新定义了网关。
6.4. 网关 YAML 参考 复制链接链接已复制到粘贴板!
第 6.3 节 “创建网关并将其应用到另一台机器上” 描述了如何使用网关定义 YAML 文件在单独的机器中应用网关。
以下是网关定义 YAML 文件中的有效条目。
- name
- 网关的名称
- bindings.name
- 单个主机的绑定名称。
- bindings.host
- 本地服务的主机名。
- bindings.service
- 要在服务网络上可用的服务的定义。
- bindings.service.address
- 服务网络上的地址、名称和端口。
- bindings.service.protocol
-
Skupper 协议,
tcp,http或http2。 - bindings.service.ports
- 在服务网络上有一个可用端口。
- bindings.service.target_ports
- 要在服务网络上公开的单个端口。
如果本地服务需要多个端口,请为每个端口创建单独的绑定。
- forwards.name
- 单个主机的转发名称。
- forwards.host
- 本地服务的主机名。
- forwards.service
- 您要在本地可用的服务的定义。
- forwards.service.address
- 您要在本地、名称和端口的服务网络上的地址。
- forwards.service.protocol
-
Skupper 协议,
tcp,http或http2。 - forwards.service.ports
- 在服务网络上有一个可用端口。
- forwards.service.target_ports
- 您要在本地使用的单个端口。
如果网络服务需要多个端口,请为每个端口创建单独的转发。
- qdr-listeners
- skupper 路由器监听程序的定义
- qdr-listeners.name
-
skupper 路由器的名称,通常为
amqp。 - qdr-listeners.host
-
skupper 路由器的主机名,通常为
localhost。 - qdr-listeners.port
-
skupper 路由器的端口,通常为
5672。
第 7 章 探索服务网络 复制链接链接已复制到粘贴板!
应用程序间连接包含一个命令,可用于报告服务网络上的所有站点和服务。
先决条件
- 具有多个站点的服务网络
流程
- 将 Kubernetes 上下文设置为服务网络上的命名空间。
使用以下命令报告服务网络的状态:
skupper network status
$ skupper network statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,下面显示了从
west命名空间中创建了 通过 OpenShift 教程创建的服务网络 的输出:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 与当前上下文关联的站点唯一标识符,即
west命名空间 - 2
- 服务网络路由器的 URL。其他站点需要这样做,才能连接到此站点,并与控制台 URL 不同。如果您需要控制台的 URL,请使用
skupper status命令显示该 URL。 - 3
- 网站名称。默认情况下,skupper 使用当前命名空间的名称。如果要指定站点名称,请使用
skupper init --site-name <site-name>。 - 4
- 运行站点的应用程序互联的版本。站点版本可以与当前的
skupperCLI 版本不同。要将站点更新至 CLI 版本,请使用skupper 更新。 - 5
- 在服务网络上公开的服务的名称。
- 6
- 在服务网络上公开的服务地址。
- 7
- 在服务网络上公开的服务协议。
- 8
- 服务网络上的远程站点的唯一标识符。
- 9
- 远程站点链接到的站点。
- 10
- 在服务网络上公开的本地 Kubernetes 对象的名称。在本例中,这是
hello-world-backendpod。
注意east 站点的 URL 没有值,因为该站点使用以下命令在没有入口的情况下初始化:
skupper init --ingress none
$ skupper init --ingress noneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 8 章 保护服务网络 复制链接链接已复制到粘贴板!
应用程序互联提供默认内置安全性,可跨集群和云扩展。本节描述了您可以配置的额外安全性。
如需有关为每个集群创建粒度 策略的信息,请参阅使用策略保护 服务网络。
8.1. 使用 network-policy 限制访问服务 复制链接链接已复制到粘贴板!
默认情况下,如果您在服务网络中公开服务,该服务也可以从集群中的其他命名空间访问。您可以使用 --create-network-policy 选项创建站点时避免这种情况。
流程
使用网络策略创建服务网络路由器:
skupper init --create-network-policy
$ skupper init --create-network-policyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查站点状态:
skupper status
$ skupper statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出应类似以下示例:
Skupper enabled for namespace 'west'. It is not connected to any other sites.
Skupper enabled for namespace 'west'. It is not connected to any other sites.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,您可以在服务网络中公开服务,且这些服务不能从集群中的其他命名空间访问。
8.2. 将 TLS 应用到服务网络上的 HTTP2 流量 复制链接链接已复制到粘贴板!
默认情况下,站点之间的流量会加密,但服务 pod 和路由器 pod 之间的流量不会加密。对于以 HTTP2 形式公开的服务,pod 和路由器 Pod 之间的流量可以使用 TLS 加密。
先决条件
- 两个或多个链接站点
- HTTP2 前端和后端服务
流程
- 部署您的后端服务。
在服务网络中公开您的后端部署,启用 TLS,例如:
skupper expose deployment <deployment-name> --port 443 --protocol http2 --enable-tls
$ skupper expose deployment <deployment-name> --port 443 --protocol http2 --enable-tlsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 TLS 创建 TLS 后端所需的证书,并将其存储在名为
skupper-tls-<deployment-name> 的 secret 中。修改后端部署使其包含生成的证书,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 每个站点都会创建 TLS 客户端所需的证书,并将它们存储在名为
skupper-service-client的 secret 中。修改 frontend 部署,使其包含生成的证书,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 测试从已启用的 TLS 前端调用该服务。
第 9 章 支持的标准和协议 复制链接链接已复制到粘贴板!
应用程序间连接支持以下服务网络协议:
- TCP - default
- HTTP1
- HTTP2
在公开或创建服务时,您可以指定协议,例如:
skupper expose deployment hello-world-backend --port 8080 --protocol <protocol>
$ skupper expose deployment hello-world-backend --port 8080 --protocol <protocol>
其中 & lt;protocol& gt; 可以是:
- tcp
- http
- http2
在选择要指定的协议时,请注意以下几点:
-
TCP 支持 TCP 上任何协议覆盖,例如在指定
时 HTTP1 和 HTTP2 工作。tcp -
如果指定了
http或http2,则客户端报告的 IP 地址可能无法访问。 所有服务网络流量都转换为 AMQP 信息,以便遍历服务网络。
TCP 作为单一流消息实施,HTTP1 和 HTTP2 作为请求/响应消息路由实施。
第 10 章 使用不同集群的 CLI 选项 复制链接链接已复制到粘贴板!
默认情况下,所有 skupper 命令都应用到您登录到和当前命名空间的集群。以下 skupper 选项允许您覆盖该行为并适用于所有命令:
--namespace <namespace-name>将命令应用到 <
;namespace-name>。例如,如果您目前正在运行frontend命名空间,并希望初始化后端命名空间中的站点:skupper init --namespace backend
$ skupper init --namespace backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow --kubeconfig <kubeconfig-path>-
kubeconfig 文件的路径 - 允许您从同一客户端运行多个会话。另一种方法是设置
KUBECONFIG环境变量。有关使用 kubeconfig 文件的示例,请参阅 教程。 --context <context-name>- kubeconfig 文件可以包含定义的上下文,此选项允许您使用这些上下文。
第 11 章 使用 Skupper 令牌 复制链接链接已复制到粘贴板!
通过 Skupper 令牌,您可以在站点之间创建链接。您可以在一个站点上创建令牌,并使用来自其他站点的令牌在两个站点之间创建一个链接。
虽然连接进程是双向的,但 Skupper 链接允许在两个方向进行通信。
如果两个站点都平等访问,例如两个公共云,那么您在创建令牌时并不重要。但是,在使用令牌时,您必须从您链接的网站访问您链接的网站。例如,如果您要使用公共和私有集群创建服务网络,您必须在公共集群中创建令牌,并使用私有集群中的令牌。
Skupper 令牌有两种类型:
- 声明令牌(默认)
可以限制声明令牌:
- 时间 - 防止在指定周期后重复利用令牌。
- 使用 - 防止从一个令牌创建多个链接。
所有跨站点流量均使用私有、专用证书颁发机构(CA)受到 mutual TLS 的保护。声明令牌不是证书,而是在链接过程中安全地交换证书。通过实施适当的限制(例如,创建单一声明令牌),您可以避免意外暴露证书。
- 证书令牌
您可以使用证书令牌创建签发该令牌的网站链接,其中包括来自该站点的有效证书。
所有跨站点流量均使用私有、专用证书颁发机构(CA)受到 mutual TLS 的保护。证书令牌是由专用 CA 发布的证书。适当保护它。
11.1. 创建声明令牌 复制链接链接已复制到粘贴板!
您可以使用声明令牌创建签发该令牌的网站的链接。它不包括来自该站点的证书,而是使用声明令牌时从站点传递证书。声明令牌可以通过时间或使用情况限制。
流程
- 登录到集群。
- 切换到与站点关联的命名空间。
创建一个声明令牌,例如:
skupper token create $HOME/secret.yaml --expiry 30m0s --uses 2 -t claim
$ skupper token create $HOME/secret.yaml --expiry 30m0s --uses 2 -t claimCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意声明令牌是默认的,命令的
-t 声明部分是不需要的。- --expiry
-
令牌有效期(以分钟为单位)和秒(默认为
15m0s)的时间。 - --uses
-
您可以使用令牌创建链接(默认
1)的次数。
附加信息
- 有关使用 CLI 配置应用程序互连站点,以了解有关使用令牌创建链接的信息。
11.2. 创建身份验证令牌 复制链接链接已复制到粘贴板!
身份验证令牌允许您创建许多与不同站点的服务网络的链接,而无需限制。
流程
- 登录到集群。
- 切换到与站点关联的命名空间。
创建证书令牌:
skupper token create $HOME/secret.yaml -t cert
$ skupper token create $HOME/secret.yaml -t certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意证书令牌始终有效,且可以无限期地重复使用,除非已撤销,如所述 第 11.3 节 “撤销对站点的访问”
附加信息
- 有关使用 CLI 配置应用程序互连站点,以了解有关使用令牌创建链接的信息。
11.3. 撤销对站点的访问 复制链接链接已复制到粘贴板!
如果令牌被破坏,您可以通过无效的从站点创建的令牌来防止未经授权使用该令牌。
这个选项删除所有站点的链接,并要求您重新创建任何链接来恢复服务网络。
- 流程
- 登录到集群。
- 切换到与站点关联的命名空间。
检查站点的状态:
skupper status
$ skupper status Skupper is enabled for namespace "west" in interior mode. It is linked to 2 other sites.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查站点的传出链接:
skupper link status
$ skupper link status Link link1 is activeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在这种情况下,有两个链接,一个传出链接,即有一个传入的链接。
从传入链接撤销对站点的访问:
skupper revoke-access
$ skupper revoke-accessCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查该站点的状态,以查看对访问的撤销操作:
skupper status skupper link status
$ skupper status Skupper is enabled for namespace "west" in interior mode. It is linked to 1 other site. $ skupper link status Link link1 is activeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示
skupper revoke-access命令已撤销了传入的链接,但传出链接仍然活跃。您可以使用
skupper link1 命令删除该链接,但要撤销访问,在登录到适当的集群时必须按照以下步骤操作。
附加信息
在 2022-08-14 10:32:24 +1000 上修订