少し異なるポッドを作成するためにDaemonSetの単一の定義を定義するにはどうすればよいですか? 異なるポッドを意味するのは、異なるコマンドから作成されたポッドです。 現在、2つの異なる種類のポッドを作成するために、2つの異なるDaemonSetオブジェクトを作成しています。少し異なるポッドを作成するDaemonSetを定義するには?
詳細を教えてください。
私はkube-flannel.yml、特にDaemonSetの定義を変更しています。 flanneld [ -/opt/bin/flanneld]、 "--ip-masq"、 " - kube-subnet-mgr"]に "--iface ="を追加したい場合 と私は2つの異なるイーサネットノードラベルに基づくインタフェース 1)2つのイーサネットインタフェースを持つマスターノード:eth0の外部ネットワーク1つのイーサネットインターフェースと 2)スレーブノードのために、内部ネットワーク及びETH3ための内部ネットワーク 3)Aのeth0の
Iは、ノードの三つの異なる種類を持っています新たに追加された1つのイーサネットインタフェースを持つノード:p2p1 I 1を有していた)、2)、Iは、次のコマンドを使用して大丈夫だった内部ネットワーク
用: [ "の/ opt/binに/ flanneld"、「--ip-MASQ "、" -kube-subnet-mgr "、" --iface = - eth0 "] そうでなければ、マスタノードのflanneldが自動的にeth0以外のeth3を検出するため、--ifaceオプションを追加する必要があります。はreasoですn ifaceオプションを手動で追加します。私は別のコマンドで2つのDaemonSet定義を行う必要があり
今私は3を持っていること)、 : [ "は/ opt/binに/ flanneld"、 "--ip-マスカレード"、「--kubeサブネット-MGR 1、2) 、[/ opt/bin/flanneld]、 "--ip-masq"、 " - kube-subnet-mgr"、 "--iface = -eth0" -iface = - p2p1 "] for 3) ラベルセレクタは、どのDaemonSetがノードに使用されているかを示すために使用されます。 定義全体が最後に添付されています。
単一のDaemonSet定義からわずかに異なるポッドを作成する方法はありますか? 特定のラベルの値で置き換えることができるプレースホルダを持つ単一の定義のみを持つとよいでしょう。
そうでなければ、私はflannelを別の方法で設定することでこれを行うことができますか? --ifaceオプションにイーサネットインターフェースのリストを与えることができればいいですが、私の同僚は--ifaceオプションに与えられるインターフェース/ ipは1つしかないことが分かりました。
ありがとうございました。
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: flannel
---
kind: ConfigMap
apiVersion: v1
metadata:
name: kube-flannel-cfg
labels:
tier: node
app: flannel
data:
cni-conf.json: |
{
"name": "cbr0",
"type": "flannel",
"delegate": {
"isDefaultGateway": true
}
}
net-conf.json: |
{
"Network": "10.244.0.0/16",
"Backend": {
"Type": "vxlan"
}
}
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: kube-flannel-ds
labels:
tier: node
app: flannel
iface: eth0
spec:
template:
metadata:
labels:
tier: node
app: flannel
iface: eth0
spec:
hostNetwork: true
nodeSelector:
beta.kubernetes.io/arch: amd64
iface: eth0
serviceAccountName: flannel
containers:
- name: kube-flannel
image: quay.io/coreos/flannel:v0.7.0-amd64
command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr", "--iface=eth0" ]
securityContext:
privileged: true
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: run
mountPath: /run
- name: flannel-cfg
mountPath: /etc/kube-flannel/
- name: install-cni
image: quay.io/coreos/flannel:v0.7.0-amd64
command: [ "/bin/sh", "-c", "set -e -x; cp -f /etc/kube-flannel/cni-conf.json /etc/cni/net.d/10-flannel.conf; while true; do sleep 3600; done" ]
volumeMounts:
- name: cni
mountPath: /etc/cni/net.d
- name: flannel-cfg
mountPath: /etc/kube-flannel/
volumes:
- name: run
hostPath:
path: /run
- name: cni
hostPath:
path: /etc/cni/net.d
- name: flannel-cfg
configMap:
name: kube-flannel-cfg
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: kube-gpu-flannel-ds
labels:
tier: node
app: flannel
iface: p2p1
spec:
template:
metadata:
labels:
tier: node
app: flannel
iface: p2p1
spec:
hostNetwork: true
nodeSelector:
beta.kubernetes.io/arch: amd64
iface: p2p1
serviceAccountName: flannel
containers:
- name: kube-flannel
image: quay.io/coreos/flannel:v0.7.0-amd64
command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr", "--iface=p2p1" ]
securityContext:
privileged: true
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: run
mountPath: /run
- name: flannel-cfg
mountPath: /etc/kube-flannel/
- name: install-cni
image: quay.io/coreos/flannel:v0.7.0-amd64
command: [ "/bin/sh", "-c", "set -e -x; cp -f /etc/kube-flannel/cni-conf.json /etc/cni/net.d/10-flannel.conf; while true; do sleep 3600; done" ]
volumeMounts:
- name: cni
mountPath: /etc/cni/net.d
- name: flannel-cfg
mountPath: /etc/kube-flannel/
volumes:
- name: run
hostPath:
path: /run
- name: cni
hostPath:
path: /etc/cni/net.d
- name: flannel-cfg
configMap:
name: kube-flannel-cfg
Googleグループの説明を参照するには、https://groups.google.com/forum/#!topic/kubernetes-users/F6GvfHoX7V4のリンクをご覧ください。 – eastcirclek