K8S单master部署三:APIserver+Contro
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,以下所有操作均在master端进行服务器角色分配角色地址安装组件master192.168.142.220kube-apiserver kube-controller-manager kube-sch
千家信息网最后更新 2025年01月23日K8S单master部署三:APIserver+Contro
以下所有操作均在master端进行
服务器角色分配
角色 | 地址 | 安装组件 |
---|---|---|
master | 192.168.142.220 | kube-apiserver kube-controller-manager kube-scheduler etcd |
node1 | 192.168.142.136 | kubelet kube-proxy docker flannel etcd |
node2 | 192.168.142.132 | kubelet kube-proxy docker flannel etcd |
一、APIserver服务部署
建立apiserver安装站点
[root@master k8s]# pwd/k8s[root@master k8s]# mkdir apiserver[root@master k8s]# cd apiserver/
建立ca证书(注意路径问题!!)
//定义ca证书,生成ca证书配置文件[root@master apiserver]# cat > ca-config.json < ca-csr.json << EOF{ "CN": "kubernetes", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "Beijing", "ST": "Beijing", "O": "k8s", "OU": "System" } ]}EOF//证书签名(生成ca.pem ca-key.pem)[root@master apiserver]# cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
建立apiserver通信证书
//定义apiserver证书,生成apiserver证书配置文件[root@master apiserver]# cat > server-csr.json <
建立admin证书
[root@master apiserver]# cat > admin-csr.json <
建立kube-proxy证书
[root@master apiserver]# cat > kube-proxy-csr.json <
总共应该生成8个证书
[root@master apiserver]# ls *.pemadmin-key.pem ca-key.pem kube-proxy-key.pem server-key.pemadmin.pem ca.pem kube-proxy.pem server.pem
复制启动命令
//建立存放站点[root@master apiserver]# mkdir -p /opt/kubernetes/{bin,ssl,cfg}[root@master apiserver]# cp -p *.pem /opt/kubernetes/ssl///复制启动脚本[root@master k8s]# tar zxvf kubernetes-server-linux-amd64.tar.gz[root@master k8s]# cd kubernetes/server/bin/[root@master bin]# cp -p kube-apiserver kubectl /opt/kubernetes/bin/
创建token文件
[root@master bin]# cd /opt/kubernetes/cfg//生成随机的令牌[root@master cfg]# export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')[root@master cfg]# cat > token.csv << EOF${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"EOF
创建apiserver启动脚本
[root@master cfg]# vim /usr/lib/systemd/system/kube-apiserver.service//手动进行编写[Unit]Description=Kubernetes API ServerDocumentation=https://github.com/GoogleCloudPlatform/kubernetes[Service]EnvironmentFile=/opt/kubernetes/cfg/kube-apiserverExecStart=/opt/kubernetes/bin/kube-apiserver $KUBE_APISERVER_OPTSRestart=on-failure[Install]WantedBy=multi-user.target//提权方便识别[root@master cfg]# chmod +x /usr/lib/systemd/system/kube-apiserver.service
创建apiserver配置文件
[root@master ssl]# vim /opt/kubernetes/cfg/kube-apiserver//进行手工编写,注意IP地址的变更KUBE_APISERVER_OPTS="--logtostderr=true \--v=4 \--etcd-servers=https://192.168.142.220:2379,https://192.168.142.136:2379,https://192.168.142.132:2379 \--bind-address=192.168.142.220 \--secure-port=6443 \--advertise-address=192.168.142.220 \--allow-privileged=true \--service-cluster-ip-range=10.0.0.0/24 \--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction \--authorization-mode=RBAC,Node \--kubelet-https=true \--enable-bootstrap-token-auth \--token-auth-file=/opt/kubernetes/cfg/token.csv \--service-node-port-range=30000-50000 \--tls-cert-file=/opt/kubernetes/ssl/server.pem \--tls-private-key-file=/opt/kubernetes/ssl/server-key.pem \--client-ca-file=/opt/kubernetes/ssl/ca.pem \--service-account-key-file=/opt/kubernetes/ssl/ca-key.pem \--etcd-cafile=/opt/etcd/ssl/ca.pem \--etcd-certfile=/opt/etcd/ssl/server.pem \--etcd-keyfile=/opt/etcd/ssl/server-key.pem"[root@master ssl]# mkdir -p /var/log/kubernetes/apiserver
apiserver服务启动
[root@master cfg]# systemctl daemon-reload[root@master cfg]# systemctl start kube-apiserver[root@master cfg]# systemctl status kube-apiserver[root@master cfg]# systemctl enable kube-apiserver
检查服务启动情况
[root@master bin]# netstat -atnp | egrep "(6443|8080)" //6443为http使用端口;8080位https使用端口tcp 0 0 192.168.142.220:6443 0.0.0.0:* LISTEN 12898/kube-apiservetcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 12898/kube-apiservetcp 0 0 192.168.142.220:6443 192.168.142.220:60052 ESTABLISHED 12898/kube-apiservetcp 0 0 192.168.142.220:60052 192.168.142.220:6443 ESTABLISHED 12898/kube-apiserve
二、Controller-Manager服务部署
移动控制命令
[root@master bin]# pwd/k8s/kubernetes/server/bin//移动脚本[root@master bin]# cp -p kube-controller-manager /opt/kubernetes/bin/
编写kube-controller-manager配置文件
[root@master bin]# cat </opt/kubernetes/cfg/kube-controller-managerKUBE_CONTROLLER_MANAGER_OPTS="--logtostderr=true \--v=4 \--master=127.0.0.1:8080 \--leader-elect=true \--address=127.0.0.1 \--service-cluster-ip-range=10.0.0.0/24 \--cluster-name=kubernetes \--cluster-signing-cert-file=/opt/kubernetes/ssl/ca.pem \--cluster-signing-key-file=/opt/kubernetes/ssl/ca-key.pem \--root-ca-file=/opt/kubernetes/ssl/ca.pem \--service-account-private-key-file=/opt/kubernetes/ssl/ca-key.pem"EOF
编写kube-controller-manager启动脚本
[root@master bin]# cat </usr/lib/systemd/system/kube-controller-manager.service[Unit]Description=Kubernetes Controller ManagerDocumentation=https://github.com/kubernetes/kubernetes[Service]EnvironmentFile=/opt/kubernetes/cfg/kube-controller-managerExecStart=/opt/kubernetes/bin/kube-controller-manager \$KUBE_CONTROLLER_MANAGER_OPTSRestart=on-failure[Install]WantedBy=multi-user.targetEOF
启动服务
//提权并启动[root@master cfg]# chmod +x /usr/lib/systemd/system/kube-controller-manager.service[root@master cfg]# systemctl start kube-controller-manager[root@master cfg]# systemctl status kube-controller-manager[root@master cfg]# systemctl enable kube-controller-manager
查看服务启动情况
[root@master bin]# netstat -atnp | grep kube-controlltcp 0 0 127.0.0.1:10252 0.0.0.0:* LISTEN 12964/kube-controlltcp6 0 0 :::10257 :::* LISTEN 12964/kube-controll
三、Scheruler服务部署
移动控制命令
[root@master bin]# pwd/k8s/kubernetes/server/bin//移动脚本[root@master bin]# cp -p kube-scheduler /opt/kubernetes/bin/
编写配置文件
[root@master bin]# cat </opt/kubernetes/cfg/kube-schedulerKUBE_SCHEDULER_OPTS="--logtostderr=true \--v=4 \--master=127.0.0.1:8080 \--leader-elect"EOF
编写启动脚本
[root@master bin]# cat </usr/lib/systemd/system/kube-scheduler.service[Unit]Description=Kubernetes SchedulerDocumentation=https://github.com/kubernetes/kubernetes[Service]EnvironmentFile=-/opt/kubernetes/cfg/kube-schedulerExecStart=/opt/kubernetes/bin/kube-scheduler \$KUBE_SCHEDULER_OPTSRestart=on-failure[Install]WantedBy=multi-user.targetEOF
开启服务
[root@master bin]# chmod +x /usr/lib/systemd/system/kube-scheduler.service[root@master bin]# systemctl daemon-reload[root@master bin]# systemctl start kube-scheduler[root@master bin]# systemctl status kube-scheduler[root@master bin]# systemctl enable kube-scheduler
查看服务启动情况
[root@master bin]# netstat -atnp | grep scheduletcp6 0 0 :::10251 :::* LISTEN
以上,就是master节点上需要部署的所有服务的全部部署过程。
//查看master节点状态[root@master bin]# /opt/kubernetes/bin/kubectl get cs//如果成功则应该全部为healthyNAME STATUS MESSAGE ERRORscheduler Healthy okcontroller-manager Healthy oketcd-0 Healthy {"health":"true"}etcd-1 Healthy {"health":"true"}etcd-2 Healthy {"health":"true"}
未完待续~~~
证书
服务
生成
文件
脚本
配置
移动
命令
地址
情况
节点
站点
端口
角色
控制
均衡
成功
令牌
就是
手动
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全等级保护备案流程
u3d软件开发游戏
校园里的网络安全教育
莲敏互联网科技
mc服务器连接迷你世界
数据库商品排序怎么设计
网络安全是什么特征
vpn服务器 插件
睿诚网络技术
杭州网络技术支持咨询
视频软件开发工具包
endnote的数据库
全国视频会议服务器怎么安装
ibm服务器客服电话
摩宝网络技术
网络安全宣传周梅江会展
怀旧服服务器上不了线
深圳市迅龙创威网络技术
为政府提供网络技术
服务器上每天作业自动备份数据库
网络安全产品的原理
虹口区品质软件开发代理品牌
花钱买服务器的手游
直播人气发言软件开发平台
vfp怎样关闭数据库
客户端如何获取服务器发来的证书
微搜网络技术
南京亘远网络技术有限公司
四川软件开发总产值
view安全服务器映射