Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var HaproxyConfig = template.Must(template.New("haproxy.cfg").Parse( dedent.Dedent(` global maxconn 4000 log 127.0.0.1 local0 defaults mode http log global option httplog option dontlognull option http-server-close option redispatch retries 5 timeout http-request 5m timeout queue 5m timeout connect 30s timeout client 30s timeout server 15m timeout http-keep-alive 30s timeout check 30s maxconn 4000 frontend healthz bind *:{{ .LoadbalancerApiserverHealthcheckPort }} mode http monitor-uri /healthz frontend kube_api_frontend bind 127.0.0.1:{{ .LoadbalancerApiserverPort }} mode tcp option tcplog default_backend kube_api_backend backend kube_api_backend mode tcp balance leastconn default-server inter 15s downinter 15s rise 2 fall 2 slowstart 60s maxconn 1000 maxqueue 256 weight 100 {{- if ne .KubernetesType "k3s"}} option httpchk GET /healthz {{- end }} http-check expect status 200 {{- range .MasterNodes }} server {{ . }} check check-ssl verify none {{- end }} `)))
View Source
var HaproxyManifest = template.Must(template.New("haproxy.yaml").Parse( dedent.Dedent(` apiVersion: v1 kind: Pod metadata: name: haproxy namespace: kube-system labels: addonmanager.kubernetes.io/mode: Reconcile k8s-app: kube-haproxy annotations: cfg-checksum: "{{ .Checksum }}" spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet nodeSelector: kubernetes.io/os: linux priorityClassName: system-node-critical containers: - name: haproxy image: {{ .HaproxyImage }} imagePullPolicy: IfNotPresent resources: requests: cpu: 25m memory: 32M livenessProbe: httpGet: path: /healthz port: {{ .HealthCheckPort }} readinessProbe: httpGet: path: /healthz port: {{ .HealthCheckPort }} volumeMounts: - mountPath: /usr/local/etc/haproxy/ name: etc-haproxy readOnly: true volumes: - name: etc-haproxy hostPath: path: /etc/kubekey/haproxy `)))
View Source
var K3sKubevipManifest = template.Must(template.New("kube-vip-rbac.yaml").Parse( dedent.Dedent(`{{ if .BGPMode }} apiVersion: v1 kind: ServiceAccount metadata: name: kube-vip namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "true" name: system:kube-vip-role rules: - apiGroups: [""] resources: ["services", "services/status", "nodes", "endpoints"] verbs: ["list","get","watch", "update"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["list", "get", "watch", "update", "create"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: system:kube-vip-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: system:kube-vip-role subjects: - kind: ServiceAccount name: kube-vip namespace: kube-system --- apiVersion: apps/v1 kind: DaemonSet metadata: creationTimestamp: null labels: app.kubernetes.io/name: kube-vip-ds app.kubernetes.io/version: {{ .KubeVipVersion }} name: kube-vip-ds namespace: kube-system spec: selector: matchLabels: app.kubernetes.io/name: kube-vip-ds template: metadata: creationTimestamp: null labels: app.kubernetes.io/name: kube-vip-ds app.kubernetes.io/version: {{ .KubeVipVersion }} spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/master operator: Exists - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists containers: - args: - manager env: - name: vip_arp value: "false" - name: port value: "6443" - name: vip_interface value: {{ .VipInterface }} - name: vip_cidr value: "32" - name: cp_enable value: "true" - name: cp_namespace value: kube-system - name: vip_ddns value: "false" - name: svc_enable value: "true" - name: bgp_enable value: "true" - name: bgp_routerid value: {{ .BGPRouterID }} - name: bgp_as value: "65000" - name: bgp_peeraddress - name: bgp_peerpass - name: bgp_peeras value: "65000" - name: bgp_peers value: {{ .BGPPeers }} - name: lb_enable value: "true" - name: lb_port value: "6443" - name: lb_fwdmethod value: local - name: address value: {{ .KubeVip }} - name: prometheus_server value: :2112 image: {{ .KubevipImage }} imagePullPolicy: IfNotPresent name: kube-vip resources: {} securityContext: capabilities: add: - NET_ADMIN - NET_RAW hostNetwork: true serviceAccountName: kube-vip tolerations: - effect: NoSchedule operator: Exists - effect: NoExecute operator: Exists updateStrategy: {} status: currentNumberScheduled: 0 desiredNumberScheduled: 0 numberMisscheduled: 0 numberReady: 0 {{ else }} apiVersion: v1 kind: ServiceAccount metadata: name: kube-vip namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "true" name: system:kube-vip-role rules: - apiGroups: [""] resources: ["services", "services/status", "nodes", "endpoints"] verbs: ["list","get","watch", "update"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["list", "get", "watch", "update", "create"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: system:kube-vip-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: system:kube-vip-role subjects: - kind: ServiceAccount name: kube-vip namespace: kube-system --- apiVersion: apps/v1 kind: DaemonSet metadata: creationTimestamp: null labels: app.kubernetes.io/name: kube-vip-ds app.kubernetes.io/version: {{ .KubeVipVersion }} name: kube-vip-ds namespace: kube-system spec: selector: matchLabels: app.kubernetes.io/name: kube-vip-ds template: metadata: creationTimestamp: null labels: app.kubernetes.io/name: kube-vip-ds app.kubernetes.io/version: {{ .KubeVipVersion }} spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/master operator: Exists - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists containers: - args: - manager env: - name: vip_arp value: "true" - name: port value: "6443" - name: vip_interface value: {{ .VipInterface }} - name: vip_cidr value: "32" - name: cp_enable value: "true" - name: cp_namespace value: kube-system - name: vip_ddns value: "false" - name: svc_enable value: "true" - name: vip_leaderelection value: "true" - name: vip_leaseduration value: "5" - name: vip_renewdeadline value: "3" - name: vip_retryperiod value: "1" - name: lb_enable value: "true" - name: lb_port value: "6443" - name: lb_fwdmethod value: local - name: address value: {{ .KubeVip }} - name: prometheus_server value: :2112 image: {{ .KubevipImage }} imagePullPolicy: IfNotPresent name: kube-vip resources: {} securityContext: capabilities: add: - NET_ADMIN - NET_RAW hostNetwork: true serviceAccountName: kube-vip tolerations: - effect: NoSchedule operator: Exists - effect: NoExecute operator: Exists updateStrategy: {} status: currentNumberScheduled: 0 desiredNumberScheduled: 0 numberMisscheduled: 0 numberReady: 0 {{ end }} `)))
View Source
var KubevipManifest = template.Must(template.New("kube-vip.yaml").Parse( dedent.Dedent(`{{ if .BGPMode }} apiVersion: v1 kind: Pod metadata: creationTimestamp: null name: kube-vip namespace: kube-system spec: containers: - args: - manager env: - name: vip_arp value: "false" - name: port value: "6443" - name: vip_interface value: {{ .VipInterface }} - name: vip_cidr value: "32" - name: cp_enable value: "true" - name: cp_namespace value: kube-system - name: vip_ddns value: "false" - name: svc_enable value: "true" - name: bgp_enable value: "true" - name: bgp_routerid value: {{ .BGPRouterID }} - name: bgp_as value: "65000" - name: bgp_peeraddress - name: bgp_peerpass - name: bgp_peeras value: "65000" - name: bgp_peers value: {{ .BGPPeers }} - name: lb_enable value: "true" - name: lb_port value: "6443" - name: lb_fwdmethod value: local - name: address value: {{ .KubeVip }} - name: prometheus_server value: :2112 image: {{ .KubevipImage }} imagePullPolicy: IfNotPresent name: kube-vip resources: {} securityContext: capabilities: add: - NET_ADMIN - NET_RAW volumeMounts: - mountPath: /etc/kubernetes/admin.conf name: kubeconfig hostAliases: - hostnames: - kubernetes ip: 127.0.0.1 hostNetwork: true volumes: - hostPath: path: /etc/kubernetes/admin.conf name: kubeconfig status: {} {{ else }} apiVersion: v1 kind: Pod metadata: creationTimestamp: null name: kube-vip namespace: kube-system spec: containers: - args: - manager env: - name: vip_arp value: "true" - name: port value: "6443" - name: vip_interface value: {{ .VipInterface }} - name: vip_cidr value: "32" - name: cp_enable value: "true" - name: cp_namespace value: kube-system - name: vip_ddns value: "false" - name: svc_enable value: "true" - name: vip_leaderelection value: "true" - name: vip_leaseduration value: "5" - name: vip_renewdeadline value: "3" - name: vip_retryperiod value: "1" - name: lb_enable value: "true" - name: lb_port value: "6443" - name: address value: {{ .KubeVip }} image: {{ .KubevipImage }} imagePullPolicy: IfNotPresent name: kube-vip resources: {} securityContext: capabilities: add: - NET_ADMIN - NET_RAW - SYS_TIME volumeMounts: - mountPath: /etc/kubernetes/admin.conf name: kubeconfig hostAliases: - hostnames: - kubernetes ip: 127.0.0.1 hostNetwork: true volumes: - hostPath: path: /etc/kubernetes/admin.conf name: kubeconfig status: {} {{ end }} `)))
Functions ¶
func MasterNodeStr ¶
func MasterNodeStr(runtime connector.ModuleRuntime, conf *common.KubeConf) []string
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.