记录kubeadm --config的可配置内容,参考https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2

kubeadm --config的配置文件内容

1.1  InitConfiguration

//初始化参数配置
type InitConfiguration struct {metav1.TypeMeta `json:",inline"`// BootstrapTokens?BootstrapTokens []BootstrapToken `json:"bootstrapTokens,omitempty"`//可配置节点name、annotation、Taints,cloud-provider等NodeRegistration NodeRegistrationOptions `json:"nodeRegistration,omitempty"`//配置apiserver的ip、端口(默认6443),另外一个参数ControlPlaneEndpoint用于在HA情况下配置全局的apiserver地址LocalAPIEndpoint APIEndpoint `json:"localAPIEndpoint,omitempty"`// 配置上传到集群作为secret的ca证书CertificateKey string `json:"certificateKey,omitempty"`
}

1.2  ClusterConfiguration

//kubeadm集群的配置
type ClusterConfiguration struct {metav1.TypeMeta `json:",inline"`// etcd集群的配置,可以配置内部与外部的etcdEtcd Etcd `json:"etcd,omitempty"`// service网段、pod网段、域名Networking Networking `json:"networking,omitempty"`// k8s版本KubernetesVersion string `json:"kubernetesVersion,omitempty"`// 在HA情况下,可配置为SLB地址ControlPlaneEndpoint string `json:"controlPlaneEndpoint,omitempty"`//apiserver的额外启动参数、挂载的卷、SAN(多域名证书)、apiserver超时时间APIServer APIServer `json:"apiServer,omitempty"`//controller-manager额外启动参数、挂载的卷ControllerManager ControlPlaneComponent `json:"controllerManager,omitempty"`//schduler额外启动参数、挂载的卷Scheduler ControlPlaneComponent `json:"scheduler,omitempty"`// DNS配置//安装core-dns还是kube-dns、单独配置dns使用的镜像(如果这里没有配置,则使用ClusterConfiguration里配置的镜像)DNS DNS `json:"dns,omitempty"`//证书存放位置CertificatesDir string `json:"certificatesDir,omitempty"`// 镜像仓库地址ImageRepository string `json:"imageRepository,omitempty"`// 是否使用hyperkube作为k8s组件(弃用)UseHyperKubeImage bool `json:"useHyperKubeImage,omitempty"`// 启用哪些FeatureGatesFeatureGates map[string]bool `json:"featureGates,omitempty"`// 集群名称ClusterName string `json:"clusterName,omitempty"`
}

1.3  KubeletConfiguration

type KubeletConfiguration struct {metav1.TypeMeta `json:",inline"`//启用kubelet,默认trueEnableServer *bool `json:"enableServer,omitempty"`//静态pod目录或文件,默认""StaticPodPath string `json:"staticPodPath,omitempty"`// 同步运行中的容器与配置的最大周期,默认"1m"// +optionalSyncFrequency metav1.Duration `json:"syncFrequency,omitempty"`//读取配置文件周期,默认"20s"//减小时间会造成频繁读取配置文件,可能影响性能FileCheckFrequency metav1.Duration `json:"fileCheckFrequency,omitempty"`// 静态pod http检查周期,默认"20s"//减小时间会使轮询StaticPodURL更频繁,默认""HTTPCheckFrequency metav1.Duration `json:"httpCheckFrequency,omitempty"`// 判断静态pod在运行的地址? 默认""StaticPodURL string `json:"staticPodURL,omitempty"`//访问podURL时的http header  ,默认nilStaticPodURLHeader map[string][]string `json:"staticPodURLHeader,omitempty"`// kubelet监听地址,默认"0.0.0.0"Address string `json:"address,omitempty"`//kubelet监听端口,默认10250Port int32 `json:"port,omitempty"`//read-only端口?默认0 (disabled)ReadOnlyPort int32 `json:"readOnlyPort,omitempty"`//用于https认证的X509证书,默认""TLSCertFile string `json:"tlsCertFile,omitempty"`//私钥,默认""TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty"`//TLS支持的加密算法?值来自(https://golang.org/pkg/crypto/tls/#pkg-constants),默认nilTLSCipherSuites []string `json:"tlsCipherSuites,omitempty"`//支持的TLS最小版本,默认""TLSMinVersion string `json:"tlsMinVersion,omitempty"`// 启用客户端证书循环? 默认falseRotateCertificates bool `json:"rotateCertificates,omitempty"`// kubelet会用CSR API从apiserver得到证书,需启用RotateKubeletServerCertificate 特性,默认falseServerTLSBootstrap bool `json:"serverTLSBootstrap,omitempty"`// 请求kubelet时的认证配置,bear token、X509等// 默认://   anonymous://     enabled: false//   webhook://     enabled: true//     cacheTTL: "2m"// +optionalAuthentication KubeletAuthentication `json:"authentication"`// 指定如何授权对kubelet的请求// Defaults://   mode: Webhook//   webhook://     cacheAuthorizedTTL: "5m"//     cacheUnauthorizedTTL: "30s"Authorization KubeletAuthorization `json:"authorization"`// 拉取镜像的QPS// Default: 5RegistryPullQPS *int32 `json:"registryPullQPS,omitempty"`// bursty pulls的最大数// Default: 10RegistryBurst int32 `json:"registryBurst,omitempty"`// 每秒最大创建事件数// Default: 5EventRecordQPS *int32 `json:"eventRecordQPS,omitempty"`// 每秒最大创建事件数(burst)// Default: 10EventBurst int32 `json:"eventBurst,omitempty"`//是否支持访问kubelet端点的日志功能,以及exec、attach、logs、forward命令// Default: trueEnableDebuggingHandlers *bool `json:"enableDebuggingHandlers,omitempty"`//启用锁争用分析?// Default: falseEnableContentionProfiling bool `json:"enableContentionProfiling,omitempty"`//健康检查端口// Default: 10248HealthzPort *int32 `json:"healthzPort,omitempty"`//健康检查地址// Default: "127.0.0.1"HealthzBindAddress string `json:"healthzBindAddress,omitempty"`//kubelet进程的oom-score-adj// Default: -999OOMScoreAdj *int32 `json:"oomScoreAdj,omitempty"`//配置后所有容器都会使用该DNS// Default: ""ClusterDomain string `json:"clusterDomain,omitempty"`//DNS服务器的列表,配置后将代替宿主机的DNS解析// Default: nilClusterDNS []string `json:"clusterDNS,omitempty"`//流连接的最长时间// Default: "4h"StreamingConnectionIdleTimeout metav1.Duration `json:"streamingConnectionIdleTimeout,omitempty"`//更新node状态的频率// Default: "10s"NodeStatusUpdateFrequency metav1.Duration `json:"nodeStatusUpdateFrequency,omitempty"`//上报node状态到master的频率// nodeStatusUpdateFrequency for backward compatibility.// Default: "1m"NodeStatusReportFrequency metav1.Duration `json:"nodeStatusReportFrequency,omitempty"`// kubelet在租约上的持续时间(参考etcd lease接口)// Default: 40NodeLeaseDurationSeconds int32 `json:"nodeLeaseDurationSeconds,omitempty"`//回收没有用的镜像的时间// Default: "2m"ImageMinimumGCAge metav1.Duration `json:"imageMinimumGCAge,omitempty"`//当磁盘使用率达到该值时,会一直进行镜像GC// Default: 85ImageGCHighThresholdPercent *int32 `json:"imageGCHighThresholdPercent,omitempty"`//当磁盘使用率低于该值时,不会进行镜像GC// Default: 80ImageGCLowThresholdPercent *int32 `json:"imageGCLowThresholdPercent,omitempty"`//计算、缓存所有pod用到的volume// Default: "1m"VolumeStatsAggPeriod metav1.Duration `json:"volumeStatsAggPeriod,omitempty"`//隔离kubelet的cgroup的绝对名称?(需要学习一下cgroup)// Default: ""KubeletCgroups string `json:"kubeletCgroups,omitempty"`//略// Default: ""SystemCgroups string `json:"systemCgroups,omitempty"`//略// Default: ""CgroupRoot string `json:"cgroupRoot,omitempty"`//略// Default: trueCgroupsPerQOS *bool `json:"cgroupsPerQOS,omitempty"`//cgroup 驱动,cgroup/systemd// Default: "cgroupfs"CgroupDriver string `json:"cgroupDriver,omitempty"`//cpu管理策略(可用哪些?)// Default: "none"CPUManagerPolicy string `json:"cpuManagerPolicy,omitempty"`// CPU Manager调节周期?// Default: "10s"CPUManagerReconcilePeriod metav1.Duration `json:"cpuManagerReconcilePeriod,omitempty"`// 略// Default: "none"TopologyManagerPolicy string `json:"topologyManagerPolicy,omitempty"`// 系统预留的资源(百分比),支持内存// Default: nilQOSReserved map[string]string `json:"qosReserved,omitempty"`// 容器请求的超时时间,除了pull, logs, exec, attach// Default: "2m"RuntimeRequestTimeout metav1.Duration `json:"runtimeRequestTimeout,omitempty"`//当service想访问自己时,可以配置此参数// 可配置的值://promiscuous-bridge:配置容器网桥模式为promiscuous?//hairpin-veth:容器网卡上配置hairpin flag?//none:啥也不干// Default: "promiscuous-bridge"HairpinMode string `json:"hairpinMode,omitempty"`// 当前节点上可运行的最大pod数// Default: 110MaxPods int32 `json:"maxPods,omitempty"`// Pod ID CIDR,standalone模式(?)时可以配置该参数,cluster模式时从master获取// Default: ""PodCIDR string `json:"podCIDR,omitempty"`// pod中的最大pid数// Default: -1PodPidsLimit *int64 `json:"podPidsLimit,omitempty"`// 容器dns解析配置// Default: "/etc/resolv.conf"ResolverConfig string `json:"resolvConf,omitempty"`// 让kubelet从apiserver获取一下pod情况,然后退出// Default: falseRunOnce bool `json:"runOnce,omitempty"`// 当容器配置了cpu limits时,启用cpu cfs限制// Default: trueCPUCFSQuota *bool `json:"cpuCFSQuota,omitempty"`// 配置cpu分配的周期,cpu.cfs_period_us// Default: "100ms"CPUCFSQuotaPeriod *metav1.Duration `json:"cpuCFSQuotaPeriod,omitempty"`// 配置node.status.images的数量,//-1:没有上限//0:不返回image// Default: 50NodeStatusMaxImages *int32 `json:"nodeStatusMaxImages,omitempty"`// kubelet进程可打开的最大文件数// Default: 1000000MaxOpenFiles int64 `json:"maxOpenFiles,omitempty"`// 发送给apiserver的contentType// Default: "application/vnd.kubernetes.protobuf"ContentType string `json:"contentType,omitempty"`// 与apiserver交互的QPS// Default: 5KubeAPIQPS *int32 `json:"kubeAPIQPS,omitempty"`// 与apiserver交互的QPS(burst)// Default: 10KubeAPIBurst int32 `json:"kubeAPIBurst,omitempty"`// kubelet一个一个拉取镜像// Default: trueSerializeImagePulls *bool `json:"serializeImagePulls,omitempty"`// 硬性驱逐的阈值,signal -> quantities// Default://   memory.available:  "100Mi"//   nodefs.available:  "10%"//   nodefs.inodesFree: "5%"//   imagefs.available: "15%"EvictionHard map[string]string `json:"evictionHard,omitempty"`// 软性驱逐的阈值(grace)// Default: nilEvictionSoft map[string]string `json:"evictionSoft,omitempty"`// 软性驱逐的周期,比如{"memory.available": "30s"}// Default: nilEvictionSoftGracePeriod map[string]string `json:"evictionSoftGracePeriod,omitempty"`// 这是啥?// Default: "5m"EvictionPressureTransitionPeriod metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty"`// 这是啥?// Default: 0EvictionMaxPodGracePeriod int32 `json:"evictionMaxPodGracePeriod,omitempty"`// Map of signal names to quantities that defines minimum reclaims, which describe the minimum// amount of a given resource the kubelet will reclaim when performing a pod eviction while// that resource is under pressure. For example: {"imagefs.available": "2Gi"}// Dynamic Kubelet Config (beta): If dynamically updating this field, consider that// it may change how well eviction can manage resource pressure.// Default: nil// +optionalEvictionMinimumReclaim map[string]string `json:"evictionMinimumReclaim,omitempty"`// podsPerCore is the maximum number of pods per core. Cannot exceed MaxPods.// 每核cpu能跑的最大pod数// Default: 0PodsPerCore int32 `json:"podsPerCore,omitempty"`// 让AD-controller来执行卷的挂载/卸载// Default: trueEnableControllerAttachDetach *bool `json:"enableControllerAttachDetach,omitempty"`// true:当内核配置不满足kubelet要求时,kubelet会出现错误//false:kubelet会修改内核配置// Default: falseProtectKernelDefaults bool `json:"protectKernelDefaults,omitempty"`// 会生成一些默认的iptables规则给组件用,比如kube-proxy// Default: trueMakeIPTablesUtilChains *bool `json:"makeIPTablesUtilChains,omitempty"`// 这是啥?// Default: 14IPTablesMasqueradeBit *int32 `json:"iptablesMasqueradeBit,omitempty"`// 这是啥?// Default: 15IPTablesDropBit *int32 `json:"iptablesDropBit,omitempty"`// 支持启用的特性,查看k8s.io/kubernetes/pkg/features/kube_features.go// Default: nilFeatureGates map[string]bool `json:"featureGates,omitempty"`// 当swap启用时,kubelet将不能启动// Default: trueFailSwapOn *bool `json:"failSwapOn,omitempty"`// 容器日志大小(滚动更新前)// Default: "10Mi"ContainerLogMaxSize string `json:"containerLogMaxSize,omitempty"`// 容器最大的日志文件数// Default: 5ContainerLogMaxFiles *int32 `json:"containerLogMaxFiles,omitempty"`// 配置confimap和secret的manager以何种模式运行?// Default: "Watch"ConfigMapAndSecretChangeDetectionStrategy ResourceChangeDetectionStrategy `json:"configMapAndSecretChangeDetectionStrategy,omitempty"`// 为系统预留资源,只支持cpu、mem具体查看http://kubernetes.io/docs/user-guide/compute-resources// Default: nilSystemReserved map[string]string `json:"systemReserved,omitempty"`// 为k8s组件预留的资源,支持cpu、mem、loca storage具体查看http://kubernetes.io/docs/user-guide/compute-resources// Default: nilKubeReserved map[string]string `json:"kubeReserved,omitempty"`// 预留的cpu列表,将覆盖system-reserved和kube-reservedReservedSystemCPUs string `json:"reservedSystemCPUs,omitempty"`// 这是啥?// Default: ""ShowHiddenMetricsForVersion string `json:"showHiddenMetricsForVersion,omitempty"`// 系统预留的cgroup,具体参考https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md// Default: ""SystemReservedCgroup string `json:"systemReservedCgroup,omitempty"`// k8s预留的cgroup,具体参考https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md// Default: ""KubeReservedCgroup string `json:"kubeReservedCgroup,omitempty"`// 指定了Node Allocatable enforcements,具体参考https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md// Default: ["pods"]EnforceNodeAllocatable []string `json:"enforceNodeAllocatable,omitempty"`// 允许不安全sysctl操作的白名单列表// Default: []AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"`// 第三方卷插件目录// Default: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"VolumePluginDir string `json:"volumePluginDir,omitempty"`// 标识cloudprovider的实例,ccm中会用到// Default: ""ProviderID string `json:"providerID,omitempty"`
}

1.4  KubeProxyConfiguration

type KubeProxyConfiguration struct {metav1.TypeMeta `json:",inline"`//开启关闭一些FeatureGatesFeatureGates map[string]bool `json:"featureGates,omitempty"`//kube-proxy绑定地址BindAddress string `json:"bindAddress"`//健康检查绑定地址,默认0.0.0.0:10256HealthzBindAddress string `json:"healthzBindAddress"`//metrics server地址,默认127.0.0.1:10249MetricsBindAddress string `json:"metricsBindAddress"`//若为true,当端口绑定失败时,kube-proxy将退出BindAddressHardFail bool `json:"bindAddressHardFail"`//若为true,提供一个web接口/debug/pprof,给metrics-server使用EnableProfiling bool `json:"enableProfiling"`//集群内pod的CIDRClusterCIDR string `json:"clusterCIDR"`//覆盖真实的hostnameHostnameOverride string `json:"hostnameOverride"`//与apiserver通信时的配置 //kube-proxy的kubeconfig、请求apiserer时的请求头(将覆盖application/json)、ContentType 、QPS、Burst(当超过查询速率时允许将查询请求缓存下来?)ClientConnection componentbaseconfigv1alpha1.ClientConnectionConfiguration `json:"clientConnection"`//ipables配置//掩码位数[0,31]、是否对所有路由作SNAT、iptables刷新间隔(SyncPeriod 和MinSyncPeriod 有啥区别?)、IPTables KubeProxyIPTablesConfiguration `json:"iptables"`//IPVS配置//略。。。IPVS KubeProxyIPVSConfiguration `json:"ipvs"`//OOMScoreAdj [-1000,1000]OOMScoreAdj *int32 `json:"oomScoreAdj"`//kube-proxy转发模式,userspace、iptables、ipvsMode ProxyMode `json:"mode"`// 主机端口范围,用于service服务转发PortRange string `json:"portRange"`//UDP连接空闲的保持时间,仅适用于proxyMode=userspaceUDPIdleTimeout metav1.Duration `json:"udpIdleTimeout"`//conntrack配置//如跟踪每个cpu的最大NAT连接数、TCP连接的空闲时间等Conntrack KubeProxyConntrackConfiguration `json:"conntrack"`//apiserver的配置信息刷新频率ConfigSyncPeriod metav1.Duration `json:"configSyncPeriod"`//这个设置了有啥用?NodePortAddresses []string `json:"nodePortAddresses"`// winkernel配置(windows)Winkernel KubeProxyWinkernelConfiguration `json:"winkernel"`//这个参数是干嘛的?ShowHiddenMetricsForVersion string `json:"showHiddenMetricsForVersion"`// 检测本地traffic,默认LocalModeClusterCIDRDetectLocalMode LocalMode `json:"detectLocalMode"`
}

1.5  JoinConfiguration

type JoinConfiguration struct {metav1.TypeMeta `json:",inline"`// 可配置kubelet的参数,比如cloud-provider: "external"NodeRegistration NodeRegistrationOptions `json:"nodeRegistration,omitempty"`//加入计算节点的配置,可Kubeadm token create --print-join-command的输出信息Discovery Discovery `json:"discovery"`//加入控制面的配置ControlPlane *JoinControlPlane `json:"controlPlane,omitempty"`
}

【kubeadm】init配置文件相关推荐

  1. Kubernetes Kubeadm init 与 join 原理分析

    一.kubeadm概述 kubeadm是社区维护的Kubernetes集群一键部署利器,使用两条命令即可完成k8s集群中master节点以及node节点的部署,其底层原理是利用了k8s TLS boo ...

  2. kubeadm工作原理-kubeadm init原理分析-kubeadm join原理分析

    kubeadm概述 kubeadm是社区维护的Kubernetes集群一键部署利器,使用两条命令即可完成k8s集群中master节点以及node节点的部署,其底层原理是利用了k8s TLS boots ...

  3. 【k8s-5】kubeadm init过程的错误

    可以看到执行了 kubeadm init 之后,貌似一直卡住 kubelet 这个进程的健康检查上,日志如下. [etcd] Creating static Pod manifest for loca ...

  4. kubeadm init 问题和解决问题记录

    安装 kubeadm: 使用阿里云来安装kube** cat /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl ...

  5. 阿里云搭建k8s kubeadm init失败的原因

    使用阿里云搭建k8s时,在主节点执行kubeadm init时候卡在 Waiting for the kubelet to boot up the control plane as static Po ...

  6. 第148天学习打卡(Kubernetes kubeadm init 成功部署 部署网络插件 部署容器化应用)

    继续安装 c3j9i2htclj6thlta6Z ~]# clear [root@iZ2vc3j9i2htclj6thlta6Z ~]# systemctl stop firewalld [root@ ...

  7. Kubeadm init报错解决

    报错截图如下: 解决方法: 接着执行下面的代码重启kubeadm kubeadm reset 然后输入y,再重新执行init操作即可 看到箭头所示的那句话表示执行成功

  8. linux init配置文件说明

    Linux 内核启动之后,启动的第一个进程就是 init 进程.该进程从 /etc/inittab 文件中读取配置,对系统进行一系列的初始化工作.下面我们来分析一下 /etc/inittab 文件的结 ...

  9. kubeadm安装高可用kubernetes v1.14.1

    前言 步骤跟之前安装1.13版本的是一样的 区别就在于kubeadm init的configuration file 目前kubeadm init with configuration file已经处 ...

最新文章

  1. 如何利用 C# 爬取带 Token 验证的网站数据?
  2. 1028. List Sorting (25)
  3. set,存放不重复数据的集合类型
  4. LeetCode 1754. 构造字典序最大的合并字符串
  5. python 动漫卡通人物图片大全_用Python把人物头像动漫化,不同的表情给你不同的惊喜...
  6. 系统辨识理论及应用_控制理论学习书单推荐(值得一读)
  7. python需要配置环境变量吗_w10版本python怎样设置环境变量
  8. python第六篇:Python复制超大文件、复制二进制文件
  9. 教你如何防止网站被挂马!
  10. 董事、执行董事、总裁、总经理
  11. 列车座位应考虑向后摆放
  12. js获得浏览器高度和宽度 参数
  13. java开发手机app教程,看完必懂
  14. 2022年招商团长未来两年发展趋势分析
  15. python gdal 基于栅格shp文件裁剪geotif图
  16. 什么是微控制器? 通用组件的定义特征和架构
  17. 工业云平台大数据统计分析有什么优势?
  18. VMware下怎么批量创建,克隆,迁移虚拟机
  19. (151)设计一个同或门之Xnorgate
  20. FinClip小程序+Rust(二):环境搭建

热门文章

  1. 网页java代码_java抓取网页代码
  2. 【热爱祖国热爱人民】
  3. windows8 linux双系统,win7或win8、win8.1系统下安装ubuntu实现双系统图文教程
  4. APPserver安装教程(手把手教你搭建)
  5. 【九章算法】经典题目
  6. Python计算机视觉——图像内容分类
  7. parsing XML document from class path resource [applicationContext.xml]…
  8. 《武林外传》中同福客栈的薪资保障是怎样的?
  9. 效果最好的SEO软件是哪个?
  10. Latex无法显示中文#学习笔记