[k8s]k8s api-server启动systemd参数分析
默认2个参数就可以启动(必需)
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://192.168.14.132:2379
默认http是127.0.0.1:8080 https://0.0.0.0:6443
设置insecure-bind-address(默认127.0.0.1)
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://192.168.14.132:2379 \
--insecure-bind-address=0.0.0.0
设置访问api的日志
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://192.168.14.132:2379 \
--audit-log-path=/root/apiserver.log
开启记录juneral日志(修改非安全ip)
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://127.0.0.1:2379 \
--insecure-bind-address=0.0.0.0 \
--logtostderr=false \ #log to standard error instead of files (default true) 默认是true
--v=2
--v=0的时候日志很少,--v2日志较多
将juneral日志记录到文件
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://192.168.14.132:2379 \
--insecure-bind-address=0.0.0.0 \
--logtostderr=false \
--log-dir=/root/logs \
--v=2
--audit-log-path=/root/apiserver.log
这里如果--v2时候,感觉audit日志也被juneral日志包含了.
audit和logtostderr分别都不设置,则啥都不记录.
设置swagger(默认关闭)
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://192.168.14.132:2379 \
--insecure-bind-address=0.0.0.0 \
--enable-swagger-ui=true \
--audit-log-path=/root/apiserver.log
http://192.168.14.132:8080/swagger-ui/
稍微完善点的写法
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://192.168.14.132:2379 \
--enable-swagger-ui=true \
--audit-log-path=/var/log/kubernetes/apiserver.log \
--audit-log-maxsize=100 \
--audit-log-maxbackup=3 \
--audit-log-maxage=30 \
--event-ttl=1h \
--logtostderr=true \
--v=2
kube-apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--etcd-servers=http://192.168.14.132:2379 \
--enable-swagger-ui=true \
--audit-log-path=/var/log/kubernetes/apiserver.log \
--audit-log-maxsize=100 \
--audit-log-maxbackup=3 \
--audit-log-maxage=30 \
--event-ttl=1h \
--logtostderr=false \
--log-dir=/root/logs \
--v=2
kube-apiserver参数解析
参考: https://kubernetes.io/docs/reference/generated/kube-apiserver/
https://kubernetes.io/docs/tasks/debug-application-cluster/audit/
cat > kube-apiserver.service <<EOF
...
[Service]
ExecStart=/usr/local/bin/kube-apiserver \\
#++++++++++++++++++++++++++++++++++++++++++
#必需区
#++++++++++++++++++++++++++++++++++++++++++
--service-cluster-ip-range=10.254.0.0/16 \\
--etcd-servers=http://192.168.14.132:2379
#++++++++++++++++++++++++++++++++++++++++++
# 监听ip区---http https 监听的ip+port
#++++++++++++++++++++++++++++++++++++++++++
--apiserver-count=3 \\(default 1)
--advertise-address=192.168.14.132 \\ #告诉别人在我是谁[ members of the cluster][默认 --bind-address]
--insecure-bind-address=192.168.14.132 \\ #非安全端口监听的ip(default 127.0.0.1)
--insecure-port=8080 \\ # 非安全端口监听的端口(默认8080)
--bind-address=0.0.0.0 \\ # 安全端口监听的ip(default 0.0.0.0)
--secure-port=6443 \\ # 安全端口(默认6443)
--service-node-port-range=30000-65535 \\(default 30000-32767)
--runtime-config=rbac.authorization.k8s.io/v1alpha1 \\ # 打开或关闭针对某个api版本支持
#++++++++++++++++++++++++++++++++++++++++++
# 授权区----授权模式 准入插件 是否允许容器特权
#++++++++++++++++++++++++++++++++++++++++++
--authorization-mode=RBAC \\ # 授权模式(default "AlwaysAllow")
--admission-control=ServiceAccount,DefaultStorageClass,ResourceQuota(基于pod和容器的配额),LimitRanger(基于ns的配额),NamespaceLifecycle(随着ns被删其包含的资源也被删除) \\ 值得注意的是他还有 AlwaysPullImages这个控制参数
--allow-privileged=true \\ # docker run --privileged [default=false]
--enable-swagger-ui=true \\
#Enable to allow secrets of type 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace to be used for TLS bootstrapping authentication.
--experimental-bootstrap-token-auth \\
#(If set, the file that will be used to secure the secure port of the API server via token authentication.)
--token-auth-file=/etc/kubernetes/token.csv \\
#++++++++++++++++++++++++++++++++++++++++++
# 证书区
#++++++++++++++++++++++++++++++++++++++++++
--client-ca-file=/etc/kubernetes/ssl/ca.crt \\
--service-account-key-file=/etc/kubernetes/ssl/ca.key \\
--tls-cert-file=/etc/kubernetes/ssl/server.crt \\
--tls-private-key-file=/etc/kubernetes/ssl/server.key \\
--etcd-cafile=/etc/kubernetes/ssl/ca.pem \\
--etcd-certfile=/etc/kubernetes/ssl/kubernetes.pem \\
--etcd-keyfile=/etc/kubernetes/ssl/kubernetes-key.pem \\
--etcd-servers=https://192.168.14.132:2379,https://192.168.14.133:2379,https://192.168.14.134:2379 \\
#++++++++++++++++++++++++++++++++++++++++++
# 日志区
#++++++++++++++++++++++++++++++++++++++++++
--audit-log-path=/var/log/kubernetes/apiserver.log \\ #审计日志路径
--audit-log-maxsize=100 \\#日志文件最大大小(单位MB),超过后自动做轮转(默认为100MB)
--audit-log-maxbackup=3 \\#旧日志文件最多保留个数
--audit-log-maxage=30 \\ #旧日志最长保留天数
--event-ttl=1h \\
--logtostderr=false \\ #不输出到
----log-dir=/root/logs \\ 输出到文件夹
--v=2 #级别0比级别2输出的日志少
[k8s]k8s api-server启动systemd参数分析的更多相关文章
- k8s之API Server认证
集群安全性 在生产环境中,必须保障集群用户的角色以及权限问题,不能给所有用户都赋予管理员权限. 1.集群的安全性必须考虑如下几个目标 (1)保证容器与其所在宿主机的隔离 (2)限制容器给基础设置或其他 ...
- Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6629298 在前面一篇文章浅谈Android系 ...
- kubernetes API Server 权限管理实践
API Server权限控制方式介绍 API Server权限控制分为三种:Authentication(身份认证).Authorization(授权).AdmissionControl(准入控制). ...
- k8s 组件介绍-API Server
API Server简介 k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心. kub ...
- K8S Api Server认证
目录 认证类型 基于CA证书的双向认证 apiserver端配置 生成客户端私钥和证书 master核心组件与apiserver的认证方式 HTTP Token认证 HTTP Basic认证 kube ...
- k8s api server ha 连接配置问题
常见的lb 负载有硬件的f5 big-ip ,同时对于互联网公司大家常用的是nginx haproxy 了解k8s 集群高可用的都知道 api server 是无状态的(etcd 解决了),但是 ...
- k8s中的api server的ca证书,可以和front proxy ca证书一样么?
答案是: 绝对不可以! 因为请求先验证的是 --requestheader-client-ca-file CA 然后才是--client-ca-file. . 那获取的用户名就会通不过了. 所以会影响 ...
- k8s使用自定义证书将客户端认证接入到API Server
自定义证书使用kubectl认证接入API Serverkubeconfig是API Server的客户端连入API Server时使用的认证格式的客户端配置文件.使用kubectl config v ...
- 图解Android - Zygote, System Server 启动分析
Init 是所有Linux程序的起点,而Zygote于Android,正如它的英文意思,是所有java程序的'孵化池'(玩过星际虫族的兄弟都晓得的).用ps 输出可以看到 >adb shell ...
随机推荐
- 课程学习:Linux系统管理
版本 内核版本 发行版本 常见Linux发行版本 ubuntu: 易用,可靠:技术支持付费,生态稍弱 debin: 精简,稳定,可靠; 更新较慢, 无技术支持,软件过时, 企业不太用 opensuse ...
- 转载:做ArcEngine的二次开发出现“没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)”
转自:http://blog.sina.com.cn/s/blog_638e61a40100ynnc.html 出现这个问题主要是因为32位操作系统和64位操作系统存在兼容性问题. 解决方案: 1.鼠 ...
- [Git] git shortlog 找出最懒的程序员
转载:http://blog.csdn.net/qinjienj/article/details/7795802 场景假设:一个开发小组有10个程序员,他们用 Git 做版本控制,某一天程序员A pu ...
- Calico网络策略实践
因为Kubernetes官方用的flannel无法实现多租户环境下的网络隔离,建立起来的pod之间实际可以相互访问,而Calico可以实现,因此周末找个时间试了一下大概的过程. 前面的kubernet ...
- linux下编译运行C程序
GCC是Linux操作系统下一个非常重要的源代码编译工具,有着许多重要的选项,支持许多不同语言的编译,如C.C++.Ada.Fortran.Objective.Perl.Python.Ruby以及Ja ...
- [转]SSIS cannot convert between unicode and non-unicode string
本文转自:http://www.mssqltips.com/sqlservertip/1393/import-excel-unicode-data-with-sql-server-integratio ...
- python的FTP模块
python本身自带一个FTP模块,可以轻松实现FTP的上传,下载等操作.下面来看看用法: from ftplib import FTP import socket #用来设置超时时间 FTP. ...
- Git系列一之安装管理
1.Git安装部署 Git是分布式的版本控制系统,我们只要有了一个原始Git版本仓库,就可以让其他主机克隆走这个原始版本仓库,从而使得一个Git版本仓库可以被同时分布到不同的主机之上,并且每台主机的版 ...
- mr程序无法输出日志进行调试的解决方法
mr程序无法输出日志进行调试的解决方法 @(Hadoop) yarn开启日志输出设置 在yarn-site.xml文件中添加如下配置: <property> <name>yar ...
- 【DataStrcutre】Introduction and description of Binary Trees
[Definitions] Here is the recursive definition of a binary tree: A binary tree is either the empty s ...