1.bookinfo介绍
bookinfo是KubeSphere官方提供的示例应用。初次使用kubeSphere部署Bookinfo是最好的上手方式,官方提供了详细部署文档
Bookinfo 应用由以下四个独立的微服务组成,其中 reviews 微服务有三个版本。
productpage 微服务会调用 details 和 reviews 用来生成页面。
- details 微服务中包含了书籍的信息。
- reviews 微服务中包含了书籍相关的评论,它还会调用 ratings 微服务。
- ratings 微服务中包含了由书籍评价组成的评级信息。
2.启用 KubeSphere 服务网格。
编辑config-sample.yaml文件:
servicemesh:
enabled: true # 将“false”更改为“true”。
istio: # Customizing the istio installation configuration, refer to https://istio.io/latest/docs/setup/additional-setup/customize-installation/
components:
ingressGateways:
- name: istio-ingressgateway # 将服务暴露至服务网格之外。默认不开启。
enabled: false
cni:
enabled: false # 启用后,会在 Kubernetes pod 生命周期的网络设置阶段完成 Istio 网格的 pod 流量转发设置工作。
2.1 执行命令创建集群
./kk create cluster -f config-sample.yaml
该命令不会重新创建已有集群,只会将config-sample.yaml中未安装的服务补齐所以不用当心已有集群重建。
2.2启用服务网格
- 以 admin 用户登录控制台。点击左上角的平台管理,选择集群管理。
- 点击定制资源定义,在搜索栏中输入 clusterconfiguration。点击结果查看其详情页。
在该配置文件中,搜索 servicemesh,并将 enabled 的 false 改为 true。完成后,点击右下角的确定,保存配置。
servicemesh:
enabled: true # 将“false”更改为“true”。
istio: # Customizing the istio installation configuration, refer to https://istio.io/latest/docs/setup/additional-setup/customize-installation/
components:
ingressGateways:
- name: istio-ingressgateway # 将服务暴露至服务网格之外。默认不开启。
enabled: false
cni:
enabled: false # 启用后,会在 Kubernetes pod 生命周期的网络设置阶段完成 Istio 网格的 pod 流量转发设置工作。
2.3在 kubectl 中执行以下命令检查安装过程:
ubuntu@master:~$ kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
**************************************************
Waiting for all tasks to be completed ...
task network status is successful (1/5)
task openpitrix status is successful (2/5)
task multicluster status is successful (3/5)
task monitoring status is successful (4/5)
task servicemesh status is successful (5/5)
**************************************************
Collecting installation results ...
#####################################################
### Welcome to KubeSphere! ###
#####################################################
ubuntu@master:~$ kubectl get pod -n istio-system
NAME READY STATUS RESTARTS AGE
istiod-1-14-6-5cffb6cc8d-h2tpp 1/1 Running 0 7m55s
jaeger-collector-7f98b5679d-hswt2 1/1 Running 0 5m5s
jaeger-operator-98c59c77-krlgt 1/1 Running 1 (2m36s ago) 5m41s
jaeger-query-bc9d96765-rp9c4 2/2 Running 0 2m
kiali-55c64d7f47-lvf2h 1/1 Running 0 2m26s
kiali-operator-96c5b8799-vvfp4 1/1 Running 0 5m38s
看到istoi-system命名空间下服务都正常后代表服务网格开启完成了
3.完成创建企业空间、项目、用户和角色中的所有任务。
3.1用户角色
用户名 | 邮箱 | 平台角色 | 企业角色 |
---|---|---|---|
zict-admin | zict-admin@huazige.com | platform-regular | 企业管理员 |
project-med-admin | project-med-admin@huazige.com | platform-regular | 项目管理员 |
project-med-regular | project-med-regular@huazige.com | platform-regular | 普通开发 |
3.2企业空间
创建企业空间的名称:test-org,并将用户 zict-admin 设置为企业空间管理员
登录zict-admin账号并邀请project-med-regular project-med-admin 进入企业空间,分别授予 test-org-self-provisioner 和 test-org-viewer 角色,点击确定。
3.3创建项目
3.4进入项目,邀请项目成员
3.5启用网关
项目设置中的网关设置
4.部署Bookinfo
- 使用帐户 project-regular 登录控制台并访问项目 (demo-project)。前往应用负载下的应用,点击右侧的部署示例应用。
- 在出现的对话框中点击下一步,其中必填字段已经预先填好,相关组件也已经设置完成。您无需修改设置,只需在最后一页(路由设置)点击创建。
- 在工作负载中,确保这四个部署都处于运行中状态,这意味着该应用已经成功创建。
- 访问Bookinfo
在应用中,访问自制应用,点击应用 bookinfo 查看其详情页面
详情页面中显示了用于访问 Bookinfo 应用的主机名和端口号。
由于将通过 NodePort 在集群外访问该应用,因此您需要在安全组中为出站流量开放上图中的端口,并按需设置端口转发规则。
在客户机(如你是windows文件位置:C:\Windows\System32\drivers\etc) hosts 文件中添加一个条目将主机名映射到对应的 IP 地址
10.**.**.93 productpage.med-rhin.10.**.**.93.nip.i
完成后,点击访问服务访问该应用。