Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // KubeletServiceTempl defines the template of kubelete service for systemd. KubeletServiceTempl = template.Must(template.New("kubeletService").Parse( dedent.Dedent(`[Unit] Description=kubelet: The Kubernetes Node Agent Documentation=http://kubernetes.io/docs/ [Service] ExecStart=/usr/local/bin/kubelet Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target `))) // KubeletEnvTempl defines the template of kubelet's Env for the kubelet's systemd service. KubeletEnvTempl = template.Must(template.New("kubeletEnv").Parse( dedent.Dedent(`# Note: This dropin only works with kubeadm and kubelet v1.11+ [Service] Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" # This is a file that "kubeadm init" and "kubeadm join" generate at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. EnvironmentFile=-/etc/default/kubelet Environment="KUBELET_EXTRA_ARGS=--node-ip={{ .NodeIP }} --hostname-override={{ .Hostname }} {{ if .ContainerRuntime }}--network-plugin=cni{{ end }}" ExecStart= ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS `))) )
View Source
var KubeadmCfgTempl = template.Must(template.New("kubeadmCfg").Parse( dedent.Dedent(`--- apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration etcd: external: endpoints: {{- range .ExternalEtcd.Endpoints }} - {{ . }} {{- end }} caFile: {{ .ExternalEtcd.CaFile }} certFile: {{ .ExternalEtcd.CertFile }} keyFile: {{ .ExternalEtcd.KeyFile }} dns: type: CoreDNS imageRepository: {{ .CorednsRepo }} imageTag: {{ .CorednsTag }} imageRepository: {{ .ImageRepo }} kubernetesVersion: {{ .Version }} certificatesDir: /etc/kubernetes/pki clusterName: {{ .ClusterName }} controlPlaneEndpoint: {{ .ControlPlaneEndpoint }} networking: dnsDomain: {{ .ClusterName }} podSubnet: {{ .PodSubnet }} serviceSubnet: {{ .ServiceSubnet }} apiServer: extraArgs: anonymous-auth: "true" bind-address: 0.0.0.0 insecure-port: "0" profiling: "false" apiserver-count: "1" endpoint-reconciler-type: lease authorization-mode: Node,RBAC enable-aggregator-routing: "false" allow-privileged: "true" storage-backend: etcd3 audit-log-maxage: "30" audit-log-maxbackup: "10" audit-log-maxsize: "100" audit-log-path: /var/log/apiserver/audit.log feature-gates: CSINodeInfo=true,VolumeSnapshotDataSource=true,ExpandCSIVolumes=true,RotateKubeletServerCertificate=true certSANs: {{- range .CertSANs }} - {{ . }} {{- end }} controllerManager: extraArgs: node-cidr-mask-size: "{{ .NodeCidrMaskSize }}" experimental-cluster-signing-duration: 87600h bind-address: 0.0.0.0 profiling: "false" port: "10252" terminated-pod-gc-threshold: "10" feature-gates: CSINodeInfo=true,VolumeSnapshotDataSource=true,ExpandCSIVolumes=true,RotateKubeletServerCertificate=true extraVolumes: - name: host-time hostPath: /etc/localtime mountPath: /etc/localtime readOnly: true scheduler: extraArgs: profiling: "false" bind-address: 0.0.0.0 port: "10251" feature-gates: CSINodeInfo=true,VolumeSnapshotDataSource=true,ExpandCSIVolumes=true,RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true {{- if .CriSock }} --- apiVersion: kubeadm.k8s.io/v1beta2 kind: InitConfiguration nodeRegistration: criSocket: {{ .CriSock }} {{- end }} --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration bindAddress: 0.0.0.0 clientConnection: acceptContentTypes: burst: 10 contentType: application/vnd.kubernetes.protobuf kubeconfig: qps: 5 clusterCIDR: {{ .PodSubnet }} configSyncPeriod: 15m0s conntrack: maxPerCore: 32768 min: 131072 tcpCloseWaitTimeout: 1h0m0s tcpEstablishedTimeout: 24h0m0s enableProfiling: False healthzBindAddress: 0.0.0.0:10256 iptables: masqueradeAll: {{ .MasqueradeAll }} masqueradeBit: 14 minSyncPeriod: 0s syncPeriod: 30s ipvs: excludeCIDRs: [] minSyncPeriod: 0s scheduler: rr syncPeriod: 30s strictARP: False mode: {{ .ProxyMode }} --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration clusterDomain: {{ .ClusterName }} clusterDNS: - {{ .ClusterIP }} maxPods: {{ .MaxPods }} rotateCertificates: true {{- if .CriSock }} containerLogMaxSize: 5Mi containerLogMaxFiles: 3 {{- if .CgroupDriver }} cgroupDriver: systemd {{- end }} {{- end }} kubeReserved: cpu: 200m memory: 250Mi systemReserved: cpu: 200m memory: 250Mi evictionHard: memory.available: 5% evictionSoft: memory.available: 10% evictionSoftGracePeriod: memory.available: 2m evictionMaxPodGracePeriod: 120 evictionPressureTransitionPeriod: 30s featureGates: CSINodeInfo: true VolumeSnapshotDataSource: true ExpandCSIVolumes: true RotateKubeletClientCertificate: true RotateKubeletServerCertificate: true `)))
KubeadmCfgTempl defines the template of kubeadm configuration file.
Functions ¶
func GenerateKubeadmCfg ¶
GenerateKubeadmCfg create kubeadm configuration file to initialize the cluster.
func GenerateKubeletEnv ¶
GenerateKubeletEnv is used to generate the env content of kubelet's service for systemd.
func GenerateKubeletService ¶
GenerateKubeletService is used to generate kubelet's service content for systemd.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.