网站首页 > 技术文章 正文
在本系列的上一篇文章中,我们配置并部署了PKS。今天我们将创建一个kubernetes集群。
如果您没有按照本系列文章进行操作,那么我建议您关注后阅读本系列的早期文章。
创建用户
在我们创建K8s集群之前,我们需要创建一个用户。我们使用用户帐户和身份验证(UAA)在PKS中创建和管理用户。我们使用UAA命令行界面(UAAC)与UAA服务器进行交互。您可以从Ops Manager VM运行UAAC命令,要安装UAAC,请运行以下命令:
apt -y install ruby?? ruby??-dev gcc build-essential g ++ gem install cf-uaac
由于我们将与PKS API进行通信,因此我们需要在执行安装时生成的证书。在Ops Manager中,单击PKS,然后单击设置选项卡左栏中的PKS API。复制证书然后在跳转时创建一个新文件,其中的内容是刚刚复制的证书。输入我们之前配置的PKS API FQDN。
接下来,我们需要检索PKS UAA管理员凭据。在Ops Manager中,单击PKS磁贴,然后单击Credentials选项卡。单击“ 链接到Credentia l”以获取Pks Uaa Management Admin Client,如下所示。
使用UAA命令行工具,使用PKS API FQDN和PKS API证书来定位我们的PKS API
root@ubuntu:~# uaac target https://fqdn:8443 --ca-cert pks.crt Target: https://fqdn:8443 Context: admin, from client admin
接下来,使用从上面的Ops Manager检索到的密码登录
root@ubuntu:~# uaac token client get admin -s fy6Ps5gTFDHMQM-KL2MJbIl5HbdQBer5 Successfully fetched token via client credentials grant. Target: https://fqdn:8443 Context: admin, from client adminch
创建账号
root@ubuntu:~# uaac user add user --emails user@example -p Password user account successfully added
将新建的用户加入到组,有2个组,分别为pks.clusters.admin(该组用户可以创建和访问所有集群)和pks.clusters.manage (该组用户可以在其中创建和访问自己的集群)
root @ ubuntu:~#uaac member add pks.clusters.admin user success
创建一个Kubernetes集群
现在我们创建了一个有权创建kubernetes集群的用户。但是我们如何创建一个集群呢?我们使用可从Pivotal下载的PKS CLI 。在那里,还下载Kubectl CLI。每种都有Linux,Windows,MAC风格。将PKS和Kubectl CLI复制到您的服务器。
添加执行权限并移至/usr/local/bin
root@ubuntu:~# chmod +x pks-linux-amd64-1.2.4-build.1 root@ubuntu:~# mv pks-linux-amd64-1.2.4-build.1 /usr/local/bin/pks root@ubuntu:~# chmod +x kubectl-linux-amd64-1.11.5 root@ubuntu:~# mv kubectl-linux-amd64-1.11.5 /usr/local/bin/kubectl
现在我们在使用PKS CLI,可以使用PKS API FQDN,我们之前创建的用户以及PKS API证书登录。注意,您可以根据需要使用-k而不是-ca-cert <cert>跳过证书验证
root@ubuntu-jump:~# pks login -a fqdn -u user -p Password --ca-cert pks.crt API Endpoint: fqdn User: user
现在我们已经过身份验证,让我们创建一个k8s集群。这里我们创建一个名为pks-cluster-1的集群,其kubernetes API将通过pks-cluster-1.fqdn提供,并使用我们在上一篇文章中定义的小计划,即1个master和3个worker默认情况下。worker数量可以由-n,-num-nodes指定,最大为计划中定义的最大值,即50。
root@ubuntu:~# pks create-cluster pks-cluster-1 --external-hostname pks-cluster-1.fqdn --plan small Name: pks-cluster-1 Plan Name: small UUID: 910f1410-9c48-435c-8f8a-a775c6688021 Last Action: CREATE Last Action State: in progress Last Action Description: Creating cluster Kubernetes Master Host: pks-cluster-1.fqdn Kubernetes Master Port: 8443 Worker Nodes: 3 Kubernetes Master IP(s): In Progress Network Profile Name: Use 'pks cluster pks-cluster-1' to monitor the state of your cluster
查看群集列表
root@ubuntu:~# pks clusters Name Plan Name UUID Status Action pks-cluster-1 small 910f1410-9c48-435c-8f8a-a775c6688021 in progress CREATE
查看群集详细信息
root@ubuntu-jump:~# pks cluster pks-cluster-1
Name: pks-cluster-1
Plan Name: small
UUID: 910f1410-9c48-435c-8f8a-a775c6688021
Last Action: CREATE
Last Action State: in progress
Last Action Description: Instance provisioning in progress
Kubernetes Master Host: pks-cluster-1.fqdn
Kubernetes Master Port: 8443
Worker Nodes: 3
Kubernetes Master IP(s): In Progress
Network Profile Name:
如果我们在创建K8s群集时查看vSphere Client,我们会在管理AZ中看到四个新VM。这些不是我们的K8s集群虚拟机,实际上是BOSH编译虚拟机。BOSH即时编译包。这可以通过检查自定义属性来确认。
pks cluster <cluster-name>命令将返回创建集群的命令。注意,而不是手动检查您可以使用watch命令。您还会注意到群集的K8s API IP 10.0.80.11来自我们的NSX-T浮动IP池。如果愿意,您可以在DNS中为pks-cluster-1.fqdn创建一个条目,以解析为10.0.80.11
root@ubuntu-jump:~# pks cluster pks-cluster-1
Name: pks-cluster-1
Plan Name: small
UUID: 910f1410-9c48-435c-8f8a-a775c6688021
Last Action: CREATE
Last Action State: succeeded
Last Action Description: Instance provisioning completed
Kubernetes Master Host: pks-cluster-1.fqdn
Kubernetes Master Port: 8443
Worker Nodes: 3
Kubernetes Master IP(s): 10.0.80.11
Network Profile Name:
查看我们的vSphere Client,我们现在可以在我们的AZ AZ1,AZ2和AZ3上看到4x虚拟机,主节点位于AZ1中,AZ中的3x工作节点,就像我们在小计划中定义的那样。我们还看到主节点IP地址来自我们在NSX-T中定义的节点IP块。
现在群集已经部署了,可以分别使用kubectl和pks结合起来使用。
pks get-credentials <cluster-name>
root@ubuntu:~# pks get-credentials pks-cluster-1 Fetching credentials for cluster pks-cluster-1. Context set for cluster pks-cluster-1. You can now switch between clusters by using: $kubectl config use-context <cluster-name>
kubectl cluster-info
root@ubuntu:~# kubectl cluster-info Kubernetes master is running at https://pks-cluster-1.fqdn:8443 Heapster is running at https://pks-cluster-1.fqdn:8443/api/v1/namespaces/kube-system/services/heapster/proxy KubeDNS is running at https://pks-cluster-1.fqdn:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy kubernetes-dashboard is running at https://pks-cluster-1.fqdn:8443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy monitoring-influxdb is running at https://pks-cluster-1.fqdn:8443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
kubectl get nodes -o wide
root@ubuntu:~# kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME 9af0e2c7-4719-47cb-85db-23a8238210fd Ready <none> 1h v1.11.5 172.15.0.3 172.15.0.3 Ubuntu 16.04.5 LTS 4.15.0-42-generic docker://17.12.1-ce a3add38b-d527-4f8d-ae52-b8a9e673f344 Ready <none> 1h v1.11.5 172.15.0.5 172.15.0.5 Ubuntu 16.04.5 LTS 4.15.0-42-generic docker://17.12.1-ce b5cc05e7-4c1e-49f1-9475-bfd9beb93a07 Ready <none> 1h v1.11.5 172.15.0.4 172.15.0.4 Ubuntu 16.04.5 LTS 4.15.0-42-generic docker://17.12.1-ce
NSX-T对象
当我们使用PKS API创建k8s集群时,后台会发生很多动作。但让我们看一下在NSX-T中创建的对象。
在NSX Manager中,转到Networking> Routers,我们可以看到下面有6个新的tier-1路由器。在创建K8s群集之前,我们只有T0-LR和t1-pks-mgmt。
新对象名称包括PKS K8s群集的UUID,910f1410-9c48-435c-8f8a-a775c6688021,它与pks群集和pks群集<cluster-name > 返回的UUID相同。第一个,lb-pks- <uuid> -cluster-router是负载均衡器的第1层。其次,pks- <uuid> -cluster-router用于master服务器和worker服务所在的k8s节点网络。当创建新群集时,剩余的4个tier-1用于4个默认命名空间,它们是pks-system,kube-system,kube-public和default。您还会注意到这些新路由器旁边有一个图标,而T0-LR和t1-pks-mgmt没有,这表示它们是我们之前创建的超级用户创建的受保护对象。
在Networking> Switching中,还有6个新的逻辑交换机,1个用于负载均衡器,1个节点网络和4个用于默认命名空间。
在网络>路由> T0-LR>服务> NAT中,我们看到自动创建了5个新的NAT规则。下面有Prioirty 1024的规则(2064到2075)。第一个规则2064用于我们的节点网络,其余四个用于命名空间pod网络
在Networking> Load Balancing中,我们看到了一个新的负载均衡器,同样是我们集群的UUID
负载均衡器具有3个虚拟服务器,同样集群UUID构成其名称的一部分。第一个在其名称末尾带有虚拟服务器的是用于我们的k8s主节点的第4层虚拟服务器。您会注意到IP 10.0.80.11与pks cluster <cluster-name>返回的相同。其余两个虚拟服务器是http和https第7层虚拟服务器。
请继续关注我们后期的相关文章!
猜你喜欢
- 2024-10-10 K8S集群metrics-server组件安装 k8s集群包含哪些组件
- 2024-10-10 第6课 Kubernetes之深入掌握Pod机制及应用
- 2024-10-10 万字长文 | 使用 RBAC 限制对 Kubernetes 资源的访问
- 2024-10-10 Kubernetes:监控指南 kubernetes 监控
- 2024-10-10 《蹲坑学K8S》之21-1:Metrics-Server监控
- 2024-10-10 K8S架构设计及工作流程分析 k8s 结构图
- 2024-10-10 Metrics Server 快速安装 melsoft安装教程
- 2024-10-10 K8S系统的监控及HPA控制器 k8s dashboard 监控
- 2024-10-10 如何通过在多个Vagrant管理的虚拟机上部署多节点Kubernetes集群
- 2024-10-10 Kubernetes集群的自动水平伸缩 kubernetes 自动伸缩
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)