如何使用`kubeconfig`体验OpenYurt的能力
这份文档将介绍如何使用体验中心中提供的 kubeconfig 体验 OpenYurt 的单元化部署能力。
本地配置 kubeconfig
用户需要在本地配置 kubeconfig 后,才能通过kubectl管理集群。
- 在“集群信息”页面下“连接信息”tab 里复制
kubeconfig信息

- 将复制的
kubeconfig信息保存到本地~/.kube/config文件下

- 如果配置无误,就可以使用
kubectl来管理集群了

体验 OpenYurt 的单元化部署功能
OpenYurt 针对边缘计算场景,允许用户将工作负载分组到分布在不同地理位置的不同单元中。下面通过一个简单的场景来体验 OpenYurt 的单元化部署能力。
现在有两个边缘端的节点 node1 与 node2 分布在不同的位置(比如 node1 在杭州,node2 在上海),我们希望部署应用到杭州的节点,而不要部署到上海的节点。OpenYurt 通过NodePool 与 YurtAppSet (previous UnitedDeployment)两种资源来实现这个能力。
- 假设我们已经在 OpenYurt 集群中接入了两个节点 node1 与 node2。(不知道如何接入节点?请参照文档:如何使用 web_console)

- 在配置好
kubeconfig的本地通过命令行工具kubectl中创建 NodePool 资源,并将 node1 加入其中该 NodePool。
# 创建nodepool hangzhoucat <<EOF | kubectl apply -f -apiVersion: apps.openyurt.io/v1alpha1kind: NodePoolmetadata:name: hangzhouspec:type: EdgeEOF# 将node1节点加入nodepoolkubectl label node node1 apps.openyurt.io/desired-nodepool=hangzhou# 获取nodepoolkubectl get nodepool

此时在控制台界面中也可以看到对应的节点池 NodePool 信息。 
- 通过
kubectl创建 Workload 资源,通过 YurtAppSet 只把应用部署到 hangzhou 的节点池中。
# 单元化部署podcat <<EOF | kubectl apply -f -apiVersion: apps.openyurt.io/v1alpha1kind: YurtAppSetmetadata:labels:controller-tools.k8s.io: "1.0"name: ud-testnamespace: "183xxxxxxxx" # 注意: 替换成你的namespacespec:selector:matchLabels:app: ud-testworkloadTemplate:deploymentTemplate:metadata:labels:app: ud-testnamespace: "183xxxxxxxx" # 注意: 替换成你的namespacespec:template:metadata:labels:app: ud-testspec:containers:- name: nginximage: nginxtopology:pools:- name: hangzhounodeSelectorTerm:matchExpressions:- key: apps.openyurt.io/nodepooloperator: Invalues:- hangzhoureplicas: 1revisionHistoryLimit: 5EOF# 查看资源kubectl get nodekubectl get pod -Akubectl get nodepool

创建成功后,在控制台界面上可以看到对应的 Pod 被分配到了 hangzhou 节点池中的 node1 上。

