gpt4 book ai didi

docker - 如何更改kubernetes容器/ pods 的端口?

转载 作者:行者123 更新时间:2023-12-02 21:06:27 24 4
gpt4 key购买 nike

我正在显示“docker ps -a命令”的输出,以将所有容器列出到我的HTML页面。我想使用页面本身中的按钮更改这些容器的端口。通常在docker中,如果容器正在运行,我将在container-id上运行docker stop,然后通过在命令中添加-p HOSTPORT:CONTAINERPORT来重新启动它。但是由于所有运行的容器都是Kubernetes容器/容器,因此停止它们将重新创建一个具有不同名称的新容器/容器。那么在这种情况下如何更改容器/ pods 的端口?

“docker ps -a命令”的输出

 NAMES                              CONTAINER ID  STATUS     
k8s_nginx_nginx-6cdb6c86d4-z7m7m 56711e6de1be Up 2 seconds
k8s_POD_nginx-6cdb6c86d4-z7m7m_d 70b21761cb74 Up 3 seconds
k8s_coredns_coredns-5c98db65d4-7 dfb21bb7c7f4 Up 7 days
k8s_POD_coredns-5c98db65d4-7djs8 a336be8230ce Up 7 days
k8s_POD_kube-proxy-9722h_kube-sy 5e290420dec4 Up 7 days
k8s_POD_kube-apiserver-wootz_kub a23dea72b38b Exited (255) 7 days ago

nginx.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
type: NodePort
ports:
- name: nginxport
port: 80
targetPort: 80
nodePort: 30000
selector:
app: nginx
tier: frontend

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
tier: frontend
template:
metadata:
labels:
app: nginx
tier: frontend
spec:

containers:
- image: suji165475/devops-sample:mxgraph
name: nginx
ports:
- containerPort: 80
name: nginxport

那么,如何更改任何容器/ pods 的端口?

最佳答案

创建Pod后,就无法更改PodSpec的大多数属性。端口信息位于containers数组内部,链接的文档明确指出containers“无法更新”。如果要更改它显示的端口(或其大多数其他属性),必须删除并重新创建Pod。没有其他方法可以做到。

您几乎永远不会直接与Pod打交道(因此,您几乎永远不会在同一主机上混合普通的Docker容器和Kubernetes)。通常,您创建一个Deployment对象,该对象可以就地更新,并负责为您创建和删除Pod。

(这的必然结果是,如果您尝试隔离地更改其属性来手动删除和重新创建Pod,但是这些Pod也由Deployments或StatefulSets或DaemonSets管理,则 Controller 将注意到您丢失副本时,删除它并使用原始设置重新创建它。)

关于docker - 如何更改kubernetes容器/ pods 的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57670263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com