背景:
作为腾讯云的老用户我大概是2018年开始使用腾讯云的tke服务的。当时是1.10,现在线上还有一个tke1.12的集群,鉴于早期更新迭代较慢。我选择了在腾讯云上面kubeadm的方式自建kubernetes集群的方式。参见:https://duiniwukenaihe.github.io/2019/09/02/k8s-install/。后面持续升级,现在是1.17.17版本。最近看腾讯云云原生公众号更新的内容都比较多,并且tke的版本到了1.18我选择了尝试一下tke的服务!
注:昨天开通搭建没有截图....今天就将就一下模拟演示吧!
tke开通体验:
注:我之前开通过tke服务注册账号,服务授权就忽略了!,关于这部分的内容可以参照官方文档:https://cloud.tencent.com/document/product/457/54231
1. 打开管理控制台:
https://console.cloud.tencent.com/tke2/cluster?rid=4
名为k8s的集群为老的集群。k8s-shanghai为昨天新建的tke1.18的新的集群。由于集群已经创建了。现在就只是截图重复一遍步骤,不去做新集群的开通了!
2. 新建集群
设置集群的名称,新增资源所属的项目,我这里就都是默认了。选择kubernetes的版本。当前最新版本是1.18.4。至于runtime运行时组件。我是直接用了containerd了。当然了docker也还算可以的在1.18的版本。地域我的服务器资源都部署在上海。然后选择集群的网络环境。容器网络的组件使用了默认的Global Router,VPC-CNI对于我来说还没有这样的需求
3. 特别强调说一下容器的网络:
我的cvm网络CIDR是10.0.0.0/16的网络。容器的网络是要跟集群网络分开的正常来说选择192.168或者 172.X.0.0.0/16。当然了也可以可变长子网掩码。自己玩的不是太好还是按照提示老老实实的了默认的提示X是
16,18,....,31。16用过了,18貌似也用了 我就选择了19。故容器网络的CIDR是172.19.0.0/16.节点的pod分配方式也可以满足我的要求!
4. 操作系统与proxy选型
操作系统我都选择了ubuntu18.04。嗯也可以用腾讯云的tencent linux 或者centos.kube-proxy代理方式我选择了ipvs。当然了对应我们这样业务的量级两个proxy代理的方式差距并不是太大,也没有孰好孰坏一说,看自己需求了!
5. 新建或者将已有资源加入master work节点
服务器的配置这里我是使用了已有的节点资源,master独立部署的方式。直接把我资源池中的cvm资源分配给了master和work。其中master节点是4核8G内存配置,work节点是16核心36G内存配置。
6. 添加增强的组件
至于组件配置就看个人需求了。这边不方便截图了。我就在搭建完成的集群中理一下我随手安装的几个组件:
cbs cfs cos 存储组件是不可缺少的对我来说。
NodeProblemDetectorPlus OOMGuard看着很有用, 我也就安装上了。
NodeProblemDetectorPlus参数设置我应该设置了一个异常重启kubelet的功能这边后台也无法查看配置参数有点不好玩了然后等待集群的初始化完成。嗯,服务器的密码可以自动生成也可以使用ssh-key或者自己手工输入的看自己需求了。
tke使用体验
1. 特别不爽的一点 kuberctl get node的排序
登陆任一一台master节点,第一件事情kubectl get nodes查看一下集群:
what?为什么排序拍的杂七乱八的....能不能ROLES master在前?如下图:
正常的排序不都这样吗?tke用ip方式显示主机名。但是master能不能排在前面?至于node节点的排序能不能有个排序的方式呢?排序这个东西提交了工单。客服回应说设计如此。幸好朋友圈有几个腾讯云的小伙伴,看我吐糟,帮拉了tke的一个群,反应了一下。然后tke的小伙伴记录了一下。
2. csi-cbs-controller插件的异常
没有去细看,端口异常不知道跟哪个服务冲突了。客服最后也没有能告诉我是跟哪一个插件冲突了,后面恢复了。......主要是懒得看了。用集成服务。前提是稳定的。我个人觉得一定是可以开箱即用的。
3. 应用市场 prometheus-opraoter的错误
tke有一个应用市场,算是一个helm仓库吧。跑一个Prometheus-oprator的helm应用测试一下,然后又陷入了忧伤:
monitoring-kube-state-metrics服务无法启动。最后看了一下这个POD是使用hostNetwork模式的 需要使用主机端口,POD所在节点 这个端口是否被其他应用所占用?看了一眼此节点日志嗯 8080确实被占用了:一个名为launcher的服务占用了此端口:
客服给的解决方案:
个人还是不太相信。因为我没有安装任何应用只安装了增强组件和存储组件。登陆其他work节点也确认一下发现每个节点都有一个launcher应用。怀疑这是一个系统组件
代码语言:txt复制kubectl get pods --all-namespaces|grep launcher
最后找客服确认了一下,如下:
按照客服提示修改端口吧.......嗯总算起来了:
后记:
这是用tke1.18的第一印象。当然了tke的小伙伴还是很给力的,朋友帮拉了群。各种问题可以随时反馈,还是不错的。
这算是初体验吧,然后看看下一步体验一下部署其他应用,将服务clb代理。一步一步来吧。也希望tke能有更好的用户体验!