我在centOS 7上使用Kubernetes。
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:23:11Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:13:49Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
我确实通过使用以下 prod_www_pod.yaml 将Nginx Pod部署在“生产”命名空间上:
apiVersion: v1
kind: Pod
metadata:
name: www
namespace: production
labels:
app: www
spec:
containers:
- name: nginx
image: myrepo:5001/nginx
我已经部署了第二个( prod_debug.yaml ),以检查一切是否正常运行。
apiVersion: v1
kind: Pod
metadata:
name: debug
namespace: production
spec:
containers:
- name: debug
image: myrepo:5001/debug:latest
command:
- "sleep"
- "10000"
我可以在正确的名称空间上看到
[plaurent@kubmaster deployment]$ kubectl get po
No resources found in default namespace.
[plaurent@kubmaster deployment]$ kubectl get po -n production
NAME READY STATUS RESTARTS AGE
debug 1/1 Running 0 94s
www 1/1 Running 0 3m57s
但是当尝试从调试中卷曲www时,我有:
[plaurent@kubmaster deployment]$ kubectl exec -it -n production debug -- sh
/ # curl www
Nothing there
/ #
在kubectl delete po debug www -n production
之后,除了删除元数据上指定的命名空间外,我尝试安装该文件。
[plaurent@kubmaster deployment]$ kubectl get po
NAME READY STATUS RESTARTS AGE
debug 1/1 Running 0 10s
www 1/1 Running 0 18s
并且当尝试通过调试联系www时,它运行良好。
[plaurent@kubmaster deployment]$ kubectl exec -it debug -- sh
/ # curl www
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
/ #
有人可以指出正确的方向吗?
此致
皮埃尔
答案 0 :(得分:0)
除非通过hostname
和subdomain
进行了配置,否则您无法通过dns访问Pod,并且达到目的的方式也不尽相同。
在www
命名空间中可能有一个名为default
的服务正在将请求转发到pod,但是在production
命名空间中却没有该服务。
要确认我的意思,请在您的kubectl get svc
和default
命名空间中运行production
。
如果我对,请通过kubectl expose pod ...
公开您的广告连播,或通过Yaml文件创建服务。
现在,请注意,创建广告连播不是一个好主意。最好使用1个副本创建e部署。
答案 1 :(得分:0)
这在默认名称空间而不是生产名称空间中有效,因为默认情况下如何配置kube-dns。 default ndots config of the kube-dns recognises default.svc.cluster.local
。因此,当使用默认名称空间时,默认值允许kube-dns定位www。但是,由于df[df['Category']==" "] = np.NaN
df = df['Category'].fillna(method='ffill')
col = ['Category']
df.loc[:,col] = df.loc[:,col].ffill()
df.loc[:,['Category']] = df.loc[:,['Category']].ffill()
df = df.set_index(df.columns[0])
col = ['Category']
df.loc[:,col] = df.loc[:,col].ffill()
没有默认条目,因此名称解析失败。
您需要配置服务以在生产名称空间中公开www窗格(最好使用headless service)。