编辑 - 这是在 OSX 上另外,我试过运行minikube service <service-name>
,如下所示,当它尝试在浏览器中打开它时,我收到“连接被拒绝”信号,因为端口已关闭。
我有一个 kubernetes 部署,在使用--driver=virtualbox
. 我将其翻译为使用--driver=docker
,这几乎有效,除非我执行以下操作
$ minikube service websocket-nodeport
|-----------|--------------------|-------------|-------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|--------------------|-------------|-------------------------|
| default | websocket-nodeport | 9000 | http://172.17.0.4:30007 |
|-----------|--------------------|-------------|-------------------------|
Starting tunnel for service websocket-nodeport.
|-----------|--------------------|-------------|------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|--------------------|-------------|------------------------|
| default | websocket-nodeport | | http://127.0.0.1:62032 |
|-----------|--------------------|-------------|------------------------|
Opening service default/websocket-nodeport in default browser...
? Because you are using …
Run Code Online (Sandbox Code Playgroud) 我是 Kubernetes 新手。在 Kubernetes 中,为什么仅 NodePort 的默认端口范围为30000 - 32767?即使我们将默认端口范围更改为用户定义的端口范围,为什么只允许2767端口?
请帮助我理解。提前致谢。
kubernetes 集群上是否可以有 NodePort Default_range + user_define_range 或者它只能是一个范围
我们可以配置为默认范围加上用户定义值的范围吗?就像默认范围是 30000-32767 一样,我们也可以有 40000-41000 的附加范围吗?
希望保留集群中其他应用程序的默认范围,但构建一个特定于我的应用程序的范围。
我已经测试了在范围之外分配端口,它显然失败了,因此范围是硬定义的,想了解是否有任何方法可以拥有两个范围或用户需要使用默认范围或自定义范围(即单个集群中的两个不同范围是不支持 )
ubuntu@cluster-master:~$ kubectl expose deployment nginx --type=NodePort --port=80 --dry-run -o yaml
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
run: nginx
name: nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
nodePort: 40000
selector:
run: nginx
type: NodePort
status:
loadBalancer: {}
Run Code Online (Sandbox Code Playgroud)
ubuntu@cluster-master:~$ kubectl create -f service.yaml
The Service "nginx" is invalid: spec.ports[0].nodePort: Invalid value: 40000: provided port is not in the valid range. The range …
Run Code Online (Sandbox Code Playgroud) 我要求测试服务器应该使用端口范围 20000 - 22767
我kubeadm-config
用命令编辑了
kubectl edit cm kubeadm-config -n kube-system
当我查看结果时,我发现更改似乎已被存储:
命令$ kubeadm config view
给了我
apiServer:
extraArgs:
authorization-mode: Node,RBAC
service-node-port-range: 20000-22767
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta1
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: ""
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.13.3
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler: {}
Run Code Online (Sandbox Code Playgroud)
但是当我稍后尝试在新端口范围内安装某些东西时,我收到错误
helm upgrade --install --kubeconfig /external-storage/workspace/potapi-orchestration/clusters/at/admin.conf potapi-services charts/potapi-services -f charts/potapi-services/values.at.yaml
Error: UPGRADE FAILED: Service "potapi-services" is invalid: spec.ports[0].nodePort: Invalid value: …
Run Code Online (Sandbox Code Playgroud) 看来该--dry-run
标志无法提供服务。
kubectl create service --
--add-dir-header --log-backtrace-at --server
--alsologtostderr --log-dir --skip-headers
--as --log-file --skip-log-headers
--as-group --log-file-max-size --stderrthreshold
--cache-dir --log-flush-frequency --tls-server-name
--certificate-authority --logtostderr --token
--client-certificate --match-server-version --user
--client-key --namespace --username
--cluster --password --v
--context --profile --vmodule
--insecure-skip-tls-verify --profile-output --warnings-as-errors
--kubeconfig --request-timeout
Run Code Online (Sandbox Code Playgroud)
有没有办法创建一个没有选项的服务 yaml 文件--dry-run=client
。我尝试使用以下命令并收到错误。
kubectl create service ns-service nodeport --dry-run=client -o yaml >nodeport.yaml
Error: unknown flag: --dry-run
See 'kubectl create service --help' for usage.
Run Code Online (Sandbox Code Playgroud)