在 Kubernetes 中使用单独的 pods 创建副本集
create Replicaset with separate pods in Kubernetes
我想用单独的 pods 创建一个 ReplicaSet。
Pods
apiVersion: v1
kind: Pod
metadata:
name: user-pod
labels:
app: user-pod
spec:
containers:
- name: user-container
image: kia9372/store-user
Replicaset
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: user-replicaset
labels:
app: user-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: user-pod
但是当我执行以下命令时,它会抛出以下错误:
kubectl create -f user-replicaset.yml
>error: error validating "user-replicaset.yml":
error validating data: ValidationError(ReplicaSet.spec.selector):
unknown field "app" in io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector;
if you choose to ignore these errors, turn validation off with --validate=false
有什么问题吗?我该如何解决这个问题?
缺少匹配标签。此外,您的广告连播定义未定义匹配标签。
查看文档以获得正确的设置:
https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
您是否也尝试在 Replicaset :
中添加该标签
apiVersion: apps/v1
kind: ReplicaSet
metadata:
labels:
app: user-replicaset
app: user-pod
此 example 在两个 labels
中都使用了该标签
没有 spec.template.spec.containers
字段就无法创建副本集。因为在 k8s 中创建副本集默认需要这个。所以你必须需要添加模板字段。你实际上可以做你想做的,只需按照模板规范中的此处使用你的 pod。 template 是实际的 pod 规范,您将使用它来创建副本集的 pods.
这个将完全满足您的要求:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: user-replicaset
labels:
app: user-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: user-pod
template:
metadata:
labels:
app: user-pod
spec:
containers:
- name: user-container
image: kia9372/store-user
我想用单独的 pods 创建一个 ReplicaSet。
Pods
apiVersion: v1
kind: Pod
metadata:
name: user-pod
labels:
app: user-pod
spec:
containers:
- name: user-container
image: kia9372/store-user
Replicaset
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: user-replicaset
labels:
app: user-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: user-pod
但是当我执行以下命令时,它会抛出以下错误:
kubectl create -f user-replicaset.yml
>error: error validating "user-replicaset.yml":
error validating data: ValidationError(ReplicaSet.spec.selector):
unknown field "app" in io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector;
if you choose to ignore these errors, turn validation off with --validate=false
有什么问题吗?我该如何解决这个问题?
缺少匹配标签。此外,您的广告连播定义未定义匹配标签。
查看文档以获得正确的设置: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
您是否也尝试在 Replicaset :
apiVersion: apps/v1
kind: ReplicaSet
metadata:
labels:
app: user-replicaset
app: user-pod
此 example 在两个 labels
没有 spec.template.spec.containers
字段就无法创建副本集。因为在 k8s 中创建副本集默认需要这个。所以你必须需要添加模板字段。你实际上可以做你想做的,只需按照模板规范中的此处使用你的 pod。 template 是实际的 pod 规范,您将使用它来创建副本集的 pods.
这个将完全满足您的要求:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: user-replicaset
labels:
app: user-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: user-pod
template:
metadata:
labels:
app: user-pod
spec:
containers:
- name: user-container
image: kia9372/store-user