【二进制部署k8s-1.29.4】四、kube-apiserver安装部署

文章目录

简介

本章节主要讲解安装kube-apiseerver,安装kube-apiserver主要是将证书、配置文件、token文件拷贝到对应的目录,配置启动脚本,然后将kube-apiserver可执行文件拷贝到bin目录进行启动。
第一章.安装前软件准备及系统初始化阶段
第二章.证书及配置文件的准备
第三章.etcd集群的安装配置

一.确认证书文件及token文件

1.在第二章"二.【二进制安装k8s-1.29.4】证书及配置文件的准备",我们准备了所有相关的证书级配置文件,其中ca.pem和ca-key.pem生成在ca目录下,kube-apiserver-key.pem kube-apiserver.pem proxy-client-key.pem proxy-client.pem生成在install_master/cert目录下。
2.再次确认如下6个证书是否存在:ca.pem,etcd-key.pem,kube-apiserver-key.pem kube-apiserver.pem proxy-client-key.pem proxy-client.pem。
3.该六个证书是通过ca-config.json,ca-csr.json先生成CA证书ca.pem和ca-key.pem,然后在通过kube-apiserver-csr.json和proxy-client-csr.json 生成了kube-apiserver-key.pem kube-apiserver.pem proxy-client-key.pem proxy-client.pem。
4.将六个证书 拷贝到/opt/kubernetes/ssl目录下
5.token.csv文件在第二章时生成到了install_master目录下,也可以通过以下命令生成,然后拷贝到/opt/kubernetes/conf目录下

复制代码
echo "create token ====="
cat > token.csv << EOF
$(head -c 16 /dev/urandom | od -An -t x | tr -d ' '),kubelet-bootstrap,10001,"system:bootstrappers"
EOF

二.准备配置文件

将 kube-apiserver.conf 【该文件在第二章中生成】拷贝到/opt/kubernetes/conf 目录下。

kube-apiserver.conf的内容如:

复制代码
KUBE_APISERVER_OPTS="--enable-admission-plugins=NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota \
  --anonymous-auth=false \
  --secure-port=6443 \
  --authorization-mode=Node,RBAC \
  --runtime-config=api/all=true \
  --enable-bootstrap-token-auth \
  --service-cluster-ip-range=10.1.0.0/16 \
  --token-auth-file=/opt/kubernetes/conf/token.csv \
  --service-node-port-range=30000-50000 \
  --tls-cert-file=/opt/kubernetes/ssl/kube-apiserver.pem \
  --tls-private-key-file=/opt/kubernetes/ssl/kube-apiserver-key.pem \
  --client-ca-file=/opt/kubernetes/ssl/ca.pem \
  --kubelet-client-certificate=/opt/kubernetes/ssl/kube-apiserver.pem \
  --kubelet-client-key=/opt/kubernetes/ssl/kube-apiserver-key.pem \
  --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS \
  --service-account-issuer=https://kubernetes.default.svc \
  --service-account-key-file=/opt/kubernetes/ssl/ca-key.pem \
  --service-account-signing-key-file=/opt/kubernetes/ssl/ca-key.pem \
  --etcd-cafile=/opt/etcd/ssl/ca.pem \
  --etcd-certfile=/opt/etcd/ssl/etcd.pem \
  --etcd-keyfile=/opt/etcd/ssl/etcd-key.pem \
  --etcd-servers=https://10.16.120.81:2379,https://10.16.120.82:2379,https://10.16.120.83:2379 \
  --allow-privileged=true \
  --audit-log-maxage=5 \
  --audit-log-maxbackup=3 \
  --audit-log-maxsize=100 \
  --audit-log-path=/opt/kubernetes/logs/kube-apiserver-audit.log \
  --requestheader-allowed-names=aggregator \
  --requestheader-group-headers=X-Remote-Group \
  --requestheader-username-headers=X-Remote-User \
  --requestheader-extra-headers-prefix=X-Remote-Extra- \
  --requestheader-client-ca-file=/opt/kubernetes/ssl/ca.pem \
  --proxy-client-cert-file=/opt/kubernetes/ssl/proxy-client.pem \
  --proxy-client-key-file=/opt/kubernetes/ssl/proxy-client-key.pem \
  --v=4"

三.安装kube-apiserver

第一章总如果有下载kubernetes-server-linux-amd64.tar.gz,则解压,将kubernetes/server/bin/kube-apiserver 拷贝到/opt/kubernetes/bin目录下,也可以一次性将kubernetes/server/bin/kube-controller-manager和kubernetes/server/bin/kube-scheduler 拷贝过去.

四.准备启动脚本

将kube-apiserver.service 拷贝到/usr/lib/systemd/system/然后执行:

复制代码
systemctl daemon-reload
systemctl enable kube-apiserver
systemctl start kube-apiserver
相关推荐
网硕互联的小客服12 分钟前
如何排查 Docker 容器资源占用过高的问题?
运维·服务器·网络·安全·docker·容器
ReadThroughLife2 小时前
【已解决】MACOS M4 芯片使用 Docker Desktop 工具安装 MICROSOFT SQL SERVER
microsoft·macos·docker·容器
KrityCat2 小时前
阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】
阿里云·docker·容器
Orlando cron5 小时前
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
网络·tcp/ip·kubernetes
炎码工坊9 小时前
微服务通信安全实战:JWT在分布式架构中的应用与最佳实践
安全·网络安全·云原生·系统安全·安全架构
藥瓿亭10 小时前
K8S认证|CKS题库+答案| 9. 网络策略 NetworkPolicy
linux·运维·docker·云原生·容器·kubernetes·cks
955.10 小时前
k8s从入门到放弃之Pod的容器探针检测
云原生·容器·kubernetes
yunken2812 小时前
docker容器保存为不依赖基础镜像的独立镜像方法
java·docker·容器
langmeng11012 小时前
使用docker在3台服务器上搭建基于版本redis 6.x的一主两从模式
运维·redis·docker·容器·集群
leblancAndSherry13 小时前
Gitlab + Jenkins 实现 CICD
linux·运维·docker·kubernetes·gitlab·jenkins