中文
注册

OVS Kubernetes部署yaml文件

# Configmap 'k-vswitch' is the only resource in this file that requires
# updates based on your cluster configuration.
#
# clusterCIDR should be updated to the same CIDR configured on your
#    Kubernetes components
# serviceCIDR should be updated to the same CIDR configured on your
#    Kubernetes components
# overlayType should be updated based on the overlay type you want.
#    Currently 'vxlan' and 'gre' are supported. 'gre' is recommended
#    but some cloud providers may not allow gre traffic over your network.
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: k-vswitch
  namespace: kube-system
data:
  clusterCIDR: "<clusterCIDR>"   # change this depending on your cluster, e.g. "100.96.0.0/11"
  serviceCIDR: "<serviceCIDR>"   # change this depending on your cluster, e.g. "100.64.0.0/13"
  overlayType: "<overlayType>"         # change this depending on your cluster, can be "vxlan" or "gre"

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: vswitchconfigs.kvswitch.io
spec:
  group: kvswitch.io
  version: v1alpha1
  names:
    kind: VSwitchConfig
    plural: vswitchconfigs
  scope: Cluster

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: k-vswitch
  namespace: kube-system

---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: k-vswitch
rules:
  - apiGroups:
    - ""
    resources:
      - services
      - nodes
      - endpoints
      - pods
      - namespaces
    verbs:
      - list
      - get
      - watch
  - apiGroups:
    - "networking.k8s.io"
    resources:
      - "networkpolicies"
    verbs:
      - get
      - list
      - watch
  - apiGroups:
    - "kvswitch.io"
    resources:
      - vswitchconfigs
    verbs:
      - list
      - get
      - watch
      - create
      - update
      - patch
      - delete

---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: k-vswitch
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: k-vswitch
subjects:
- kind: ServiceAccount
  name: k-vswitch
  namespace: kube-system

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: k-vswitch-controller
  namespace: kube-system
spec:
  replicas: 1
  updateStrategy:
    type: RollingUpdate
  serviceName: k-vswitch-controller
  selector:
    matchLabels:
      k8s-app: k-vswitch-controller
  template:
    metadata:
      labels:
        k8s-app: k-vswitch-controller
    spec:
      tolerations:
      - key: "node-role.kubernetes.io/master"
        effect: NoSchedule
      hostNetwork: true
      serviceAccountName: k-vswitch
      containers:
      - name: k-vswitch-controller
        image: kvswitch/k-vswitch:latest
        imagePullPolicy: IfNotPresent
        command:
         - "/bin/k-vswitch-controller"
         - "--cluster-cidr=$(K_VSWITCH_CLUSTER_CIDR)"
         - "--service-cidr=$(K_VSWITCH_SERVICE_CIDR)"
         - "--overlay-type=$(K_VSWITCH_OVERLAY_TYPE)"
        env:
          - name: K_VSWITCH_CLUSTER_CIDR
            valueFrom:
              configMapKeyRef:
                name: k-vswitch
                key: clusterCIDR
          - name: K_VSWITCH_SERVICE_CIDR
            valueFrom:
              configMapKeyRef:
                name: k-vswitch
                key: serviceCIDR
          - name: K_VSWITCH_OVERLAY_TYPE
            valueFrom:
              configMapKeyRef:
                name: k-vswitch
                key: overlayType

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: k-vswitchd
  namespace: kube-system
  labels:
    k8s-app: k-vswitchd
spec:
  selector:
    matchLabels:
      k8s-app: k-vswitchd
  template:
    metadata:
      labels:
        k8s-app: k-vswitchd
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      serviceAccountName: k-vswitch
      containers:
      - name: k-vswitchd
        image: kvswitch/k-vswitch:latest
        imagePullPolicy: IfNotPresent
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        securityContext:
          privileged: true
        volumeMounts:
          - mountPath: /etc/cni/net.d
            name: cni-conf
          - mountPath: /etc/openvswitch
            name: ovs-etc
          - mountPath: /var/run/openvswitch
            name: ovs-run
          - mountPath: /var/log/openvswitch
            name: ovs-log
          - mountPath: /lib/modules
            name: lib-modules
      initContainers:
      - name: install-cni
        image: kvswitch/k-vswitch:latest
        imagePullPolicy: IfNotPresent
        command:
        - /bin/sh
        - -c
        - |
          set -e -x;
          cp /bin/k-vswitch-cni /opt/cni/bin/
        volumeMounts:
        - mountPath: /opt/cni/bin
          name: cni-bin-dir
      hostNetwork: true
      tolerations:
      - key: CriticalAddonsOnly
        operator: Exists
      - effect: NoSchedule
        key: node-role.kubernetes.io/master
        operator: Exists
      - effect: NoSchedule
        key: node.kubernetes.io/not-ready
        operator: Exists
      volumes:
      - name: cni-bin-dir
        hostPath:
          path: /opt/cni/bin
      - name: cni-conf
        hostPath:
          path: /etc/cni/net.d
      - name: ovs-run
        hostPath:
          path: /var/run/openvswitch
      - name: ovs-etc
        hostPath:
          path: /etc/openvswitch
      - name: ovs-log
        hostPath:
          path: /var/log/openvswitch
      - name: lib-modules
        hostPath:
          path: /lib/modules
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词