如何在Kubernetes集群中创建Mediawiki的多个实例
我将在Kubernetes集群上部署多个Mediawiki实例。 在我的例子中,用于DB(MySQL)的YAML deploymentfile按预期工作,用于Mediawiki的deploymentfile按预期部署尽可能多的POD,但即使我为这种情况创建了服务,我也无法从集群外部访问它们 如果我尝试创建一个Mediawiki pod和一个从集群外部访问它的服务,它就会正常工作。如果我尝试为Mediawiki创建一个与MySQL相同的deploymentfile,它会创建POD和所需的服务,但无法从分配给它的externel IP访问它 我的Mediawiki部署文件:如何在Kubernetes集群中创建Mediawiki的多个实例,kubernetes,mediawiki,kubernetes-pod,Kubernetes,Mediawiki,Kubernetes Pod,我将在Kubernetes集群上部署多个Mediawiki实例。 在我的例子中,用于DB(MySQL)的YAML deploymentfile按预期工作,用于Mediawiki的deploymentfile按预期部署尽可能多的POD,但即使我为这种情况创建了服务,我也无法从集群外部访问它们 如果我尝试创建一个Mediawiki pod和一个从集群外部访问它的服务,它就会正常工作。如果我尝试为Mediawiki创建一个与MySQL相同的deploymentfile,它会创建POD和所需的服务,但无
apiVersion: v1
kind: Service
metadata:
name: mediawiki-service
labels:
name: mediawiki-service
app: mediawiki
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
name: mediawiki-pod
app: mediawiki
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mediawiki
spec:
replicas: 6
selector:
matchLabels:
app: mediawiki
strategy:
type: Recreate
template:
metadata:
labels:
app: mediawiki
spec:
containers:
- image: mediawiki
name: mediawiki
ports:
- containerPort: 80
name: mediawiki
这是pod定义文件:
apiVersion: v1
kind: Pod
metadata:
name: mediawiki-pod
labels:
name: mediawiki-pod
app: mediawiki
spec:
containers:
- name: mediawiki
image: mediawiki
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: mediawiki-service
labels:
name: mediawiki-service
app: mediawiki
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
name: mediawiki-pod
这是服务定义文件:
apiVersion: v1
kind: Pod
metadata:
name: mediawiki-pod
labels:
name: mediawiki-pod
app: mediawiki
spec:
containers:
- name: mediawiki
image: mediawiki
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: mediawiki-service
labels:
name: mediawiki-service
app: mediawiki
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
name: mediawiki-pod
准确的结果应该是,我可以在集群上部署Mediawiki的多个实例,并可以使用externel IP从外部访问它们。如果您想在Kubernetes集群上部署某个软件的多个实例,最好查看是否有相关图表。 在你的情况下,答案是肯定的——有一个问题 创建多个实例与创建多个版本一样简单,例如:
helm install --name wiki1 stable/mediawiki
helm install --name wiki2 stable/mediawiki
helm install --name wiki3 stable/mediawiki
要使用Helm,您必须将其安装在本地计算机和k8s群集上-遵循以下步骤就足够了。如果您想在Kubernetes群集上部署某个软件的多个实例,最好查看是否有相关图表。 在你的情况下,答案是肯定的——有一个问题 创建多个实例与创建多个版本一样简单,例如:
helm install --name wiki1 stable/mediawiki
helm install --name wiki2 stable/mediawiki
helm install --name wiki3 stable/mediawiki
要使用Helm,您必须将其安装在本地计算机和k8s群集上-遵循以下步骤就足够了。如果您查看两种情况下的
kubectl Descripte service mediawiki服务
,我希望您会看到在单pod情况下,有一个包含单个IP地址的端点:
列表(pod是,但这是一个实现细节)但在部署案例中,它说的是
您的服务仅匹配同时具有名称
和应用
标签的POD:
apiVersion: v1
kind: Service
spec:
selector:
name: mediawiki-pod
app: mediawiki
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
labels:
app: mediawiki
但您的部署部署的POD只有app
标签:
apiVersion: v1
kind: Service
spec:
selector:
name: mediawiki-pod
app: mediawiki
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
labels:
app: mediawiki
因此,在该特定点(部署模板中的标签;在顶层添加标签也不会有什么影响,但这个嵌入点很重要)您需要添加第二个标签
name:mediawiki pod
如果您在两种情况下查看kubectl description service mediawiki service
,我希望您会看到在单pod的情况下,有一个端点:
列表,其中包含一个IP地址(pod的,但这是一个实现细节)但在部署案例中,它会显示
您的服务仅匹配同时具有名称
和应用
标签的POD:
apiVersion: v1
kind: Service
spec:
selector:
name: mediawiki-pod
app: mediawiki
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
labels:
app: mediawiki
但您的部署部署的POD只有app
标签:
apiVersion: v1
kind: Service
spec:
selector:
name: mediawiki-pod
app: mediawiki
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
labels:
app: mediawiki
因此,在该特定点(部署模板内的标签;同时在顶层添加标签不会有任何影响,但这个嵌入点很重要),您需要添加第二个标签name:mediawiki pod