腾讯云上TKE集群中通过clb-ingress公网访问到后端服务
建立容器服务(TKE)集群
基础配置
容器服务(TKE)控制台:登录 - 腾讯云
进入【集群】点击页面【新建】
填写【集群名称】,选择【集群规格】
选择【地域】【集群版本】【运行时组件】【操作系统】,点击【下一步】
网络配置
根据需求选择可用【VPC网络】,【容器网络插件】,没特殊需求可以默认推荐
勾选【容器子网】,点击【下一步】
组建配置
根据需求进行配置,没有则默认,直接点击下一步
信息确认
检查确认,勾选【服务条款】,点击【完成】,创建完毕
建立节点池和节点
点击进入【新建节点池】
选择节点
按需选择节点池,没需求就选【普通节点】即可
节点启动配置
填写【节点池名称】,按需选择【计费模式】【机型配置】【系统盘】,选择【登录方式】,创建【安全组】
【安全组】需给访问主机开通80和443端口
勾选【支持子网】,【数量】最少为2,开启【弹性伸缩】,选择【节点数量范围】应大于1,点击【创建节点池】
创建完成后可在集群【节点管理】下的【节点池】和【节点】进行查看
节点的创建会有延迟,可能无法立刻看到创建出的节点,等待即可
配置API server
点击进入集群
进去后在【基本信息】下找到【APIServer信息】,开启【公网访问】
公网访问设置
若选择【使用已有】负载均衡器,请注意:"仅支持复用非TKE所创建的CLB"
在本地机器通过Kubectl连接Kubernetes集群
在此页面下方有具体安装步骤;首先点击【下载】下载kubectl客户端,需要将上述开启【公网访问】产生的KubeConfig进行复制,粘贴到本地机器的~/.kube/config的配置文件中,可以通过kubectl get node进行测试
创建service和pod
成功登录到集群之后
进行编辑
vim svc.yaml
输入下方内容
apiVersion: apps/v1 kind: Deployment metadata:name: web-backend spec:replicas: 1selector:matchLabels:app: web-backendtemplate:metadata:labels:app: web-backendspec:containers:- name: nginximage: nginx:latestports:- containerPort: 80 --- apiVersion: v1 kind: Service metadata:name: web-backend spec:selector:app: web-backendports:- protocol: TCPport: 80targetPort: 80type: ClusterIP
【ESC】退出编辑模式,键盘输入【:wq】保存并退出[root@VM-16-23-centos ~]# kubectl apply -f svc.yaml # 输出结果,表示创建成功 deployment.apps/web-backend created service/web-backend unchanged
创建ingress
填写配置信息
填写【ingress名称】,选择【ingress类型】为【应用型CLB】,勾选【网络模式】,选择【负载均衡器】为【自动创建】,或者【使用已有】
按需选择【网络计费模式】和【带宽上限】
进行【转发配置】,选择【协议】为HTTP,【路径】为/,【后段服务】选择上述创建的service,【服务端口为80】,点击【创建ingress】,创建完成
注意事项:
1.若需【使用已有】进行自定义CLB,并进行域名访问
可登录负载均衡(CLB)控制台;登录 - 腾讯云
点击【新建】进入,按需选择配置,需要注意选择【所属网络】需要与集群网络一致,勾选【服务协议】,点击【立即购买】,即创建完成;并生成域名
在CLB控制台可以看到,TKE创建的只有IP,而在CLB单独创建的有域名
2.ingress绑定CLB之后,CLB会自动创建监听器,无特殊需求,不必手动绑定监听器
3.若选择负载均衡【自动创建】,则CLB复用TKE安全组,无需给CLB额外配置
添加域名解析
云解析DNS控制台:登录 - 腾讯云
若已有域名,登录【云解析DNS】控制台在【权威解析】下找到对应域名,点击【解析】
进入后点击【新手快速解析】
可以解析CLB的IP
也可以解析CLB的域名
测试结果
在【服务与路由】下【ingress】下可以看到【访问入口地址】,若在创建ingress时选择负载均衡【自动创建·】,则显示IP地址
若在创建ingress时选择负责均衡【使用已有】,则显示域名
在浏览器输入CLB的域名进行访问,可访问到nginx页面
在浏览器输入CLB的IP进行访问,可访问到nginx页面
在浏览器输入注册域名,可访问到nginx页面