默认情况下ingress-nginx的端口号是随意映射的,这个在使用中会有很多不便
先修改kubernetes默认端口号范围,因为默认情况下不支持nodePort
设置这么小的端口
# 编辑kube-apiserver.yaml文件
vim /etc/kubernetes/manifests/kube-apiserver.yaml
# 增加kube-apiserver的启动选项
--service-node-port-range=1-65535
# 重启kubelet
systemctl restart kubelet
修改ingress-nginx的deploy.yaml文件
# 在service中加上端口号
vim deploy.yaml
...
spec:
type: NodePort
ipFamilyPolicy: SingleStack
ipFamilies:
- IPv4
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
nodePort: 80
appProtocol: http
- name: https
port: 443
protocol: TCP
targetPort: https
nodePort: 443
appProtocol: https
...
应用修改
kubectl apply -f deploy.yaml
检查是否生效
[root@master ~]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller NodePort 172.16.37.251 <none> 80:80/TCP,443:443/TCP 70m
ingress-nginx-controller-admission ClusterIP 172.16.199.101 <none> 443/TCP 70m