[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 ...
随机推荐
- Nand Flash与Nor
转:http://www.360doc.com/content/11/1215/15/1299815_172458274.shtml Flash经常在一些地方被提到,一直没认真去理解它们的区别,因此, ...
- mysql join优化
http://www.jb51.net/article/50427.htm 七.性能优化1.显示(explicit) inner join VS 隐式(implicit) inner join 如: ...
- hive如何使用中文查询条件
直接在hql中使用中文会报错:org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.lang.RuntimeExceptio ...
- 如何修改chrome谷歌浏览器的默认搜索引擎
如图设置,chrome自己提供的百度的引擎,不能用,自己添加一个即可 添加的方法如下:打开百度搜索内容“cai”,然后把搜索的url内容放到上图的网址栏里,并用%s替换“cai”
- shell 脚本中执行mysql语句
通过hash建表之后,表的数据量巨大2048,那怎么去验证表是否建成功呢? 逻辑生成表名这部分就不写了.只要能建表成功,这部分的脚本肯定是有的.那么怎么在shell中执行selec查询并返回呢 只要在 ...
- 深入理解JavaScript模拟私有成员
一般的面向对象语言C++或JAVA,对象都是有私有成员的.js中没有类的改变,同样也没有对象的私有成员这个概念.但是可以通过某些特殊写法,模拟出私有成员. 1.特权模式: (1)在构造函数内部声明的变 ...
- Spark Streaming ReceiverTracker架构设计
本节的主要内容: 一.ReceiverTracker的架构设计 二.消息循环系统 三.ReceiverTracker具体实现 Spark Streaming作为Spark Core基础 架构之上的一个 ...
- 使用airdrop进行文件共享
使用airdrop进行文件共享 学习了: https://support.apple.com/zh-cn/HT203106 https://zh.wikihow.com/%E5%9C%A8Mac%E4 ...
- Nginx负载均衡+监控状态检测
Nginx负载均衡+监控状态检测 想用Nginx或者Tengine替代LVS,即能做七层的负载均衡,又能做监控状态检测,一旦发现后面的realserver挂了就自动剔除,恢复后自动加入服务池里,可以用 ...
- Java设计模式(十) 备忘录模式 状态模式
(十九)备忘录模式 备忘录模式目的是保存一个对象的某个状态,在适当的时候恢复这个对象. class Memento{ private String value; public Memento(Stri ...