您可以使用阿里云负载均衡来访问服务。
说明: 如果您的集群的cloud-controller-manager版本大于等于v1.9.3,对于指定已有SLB的时候,系统默认不再为该SLB处理监听,用户需要手动配置该SLB的监听规则。
执行以下命令,可查看cloud-controller-manager的版本。
root@master # kubectl get po -n kube-system -o yaml|grep image:|grep cloud-con|uniq
image: registry-vpc.cn-hangzhou.aliyuncs.com/acs/cloud-controller-manager-amd64:v1.9.3
通过命令行操作
root@master # kubectl run nginx --image=registry.aliyuncs.com/acs/netdia:latest
root@master # kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-2721357637-dvwq3 1/1 Running 1 6s
2. 为 Nginx 应用创建阿里云负载均衡服务,指定 type=LoadBalancer 来向外网用户暴露 Nginx 服务。
root@master # kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer
root@master # kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx 172.19.10.209 101.37.192.20 80:31891/TCP
3. 在浏览器中访问
http://101.37.192.20,来访问您的 Nginx 服务。
apiVersion: v1
kind: Service
metadata:
labels:
run: nginx
name: http-svc
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet
service.beta.kubernetes.io/alicloud-loadbalancer-id: your-loadbalancer-id
labels:
run: nginx
name: nginx
namespace: default
spec:
ports:
- name: web
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
sessionAffinity: None
type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alicloud-loadbalancer-cert-id: your-cert-id
service.beta.kubernetes.io/alicloud-loadbalancer-protocol-port: "https:443"
labels:
run: nginx
name: nginx
namespace: default
spec:
ports:
- name: web
port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
sessionAffinity: None
type: LoadBalancer
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。