标签:opt Kubernetes kubernetes 部署 apiserver pem service master kube
部署master节点
控制节点充当整个调度和管理的角色,k8s的Master节点包含以下组件:
※etcd:集群主数据库
※kube-apiserver:统一的资源操作入口
※kube-controller-manager:运行在节点上的管理控制组件
※kube-scheduler:资源调度器根据特定的调度算法把pod生成到指定的计算节点中
上述组件均部署在192.168.0.143机器上。这三者的功能紧密相关。同时只能有一个进程处于工作状态,如果运行多个,则需要通过选举产生一个leader。Mster节点上往往还启动了一个etcd Server进程,因为kubernetes集群里的所有资源对象的数据全部是保存在etcd中的,前面我们已经配置好了etcd服务,这里不再赘述。
这里以master01(192.168.0.143)主机为例,进行master节点部署。
1.1 TLS证书文件
pem和token.csv证书文件我们在前面已创建过了,这里直接拿来复用即可:
1.2 配置和启动kube-apiserver
kube-apiserver提供了资源操作的唯一入口,并提供了认证、授权、访问控制、注册和发现等机制。
1.2.1 创建kube-apiserver服务启动文件
路径:/usr/lib/systemd/system/kube-apiserver.service
[Unit] Description=Kubernetes API Server Documentation=https://github.com/kubernetes/kubernetes
[Service] EnvironmentFile=-/opt/kubernetes/config/kube-apiserver ExecStart=/opt/kubernetes/bin/kube-apiserver $KUBE_APISERVER_ARGS Restart=on-failure
[Install] WantedBy=multi-user.target |
1.2.3 创建kue-apiserver参数配置文件
路径:/opt/kubernetes/config/apiserver
KUBE_APISERVER_ARGS="--logtostderr=true \ --v=2 \ --etcd-servers=https://192.168.0.143:2379,https://192.168.0.144:2379,https://192.168.0.145:2379 \ --insecure-bind-address=0.0.0.0 \ --bind-address=0.0.0.0 \ --insecure-port=8080 \ --enable-swagger-ui=true \ --secure-port=6443 \ --advertise-address=0.0.0.0 \ --allow-privileged=true \ --service-cluster-ip-range=10.10.10.0/24 \ --admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota,NodeRestriction \ --authorization-mode=RBAC,Node \ --kubelet-https=true \ --enable-bootstrap-token-auth \ --token-auth-file=/opt/kubernetes/config/token.csv \ --service-node-port-range=30000-50000 \ --tls-cert-file=/opt/kubernetes/ssl/kubernetes.pem \ --tls-private-key-file=/opt/kubernetes/ssl/kubernetes-key.pem \ --client-ca-file=/opt/kubernetes/ssl/ca.pem \ --service-account-key-file=/opt/kubernetes/ssl/ca-key.pem \ --etcd-cafile=/opt/kubernetes/ssl/ca.pem \ --etcd-certfile=/opt/kubernetes/ssl/kubernetes.pem \ --etcd-keyfile=/opt/kubernetes/ssl/kubernetes-key.pem"
|
1.2.3 kube-apiserver状态
启动kube-apiserver服务:
#systemctl daemon-reload
#systemctl start kube-apiserver
#systemctl enable kube-apiserver
#systemctl status kube-apiserver
1.2.3 分发kue-apiserver
向master02和master03节点机器上分发kube-apiserver相关配置文件.
分发服务启动文件: #scp kube-apiserver.service 192.168.0.144:/usr/lib/systemd/system #scp kube-apiserver.service 192.168.0.145:/usr/lib/systemd/system
分发参数配置文件: #scp apiserver 192.168.0.144: /opt/kubernetes/config #scp apiserver 192.168.0.145: /opt/kubernetes/config |
【注意】修改apiserver参数配置文件内容需修改为对应节点环境。
1.3 配置和启动kube-controller-manager
kube-controller-manager服务依赖于kube-apiserver服务,负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。
1.3.1 创建kube-controller-manager服务启动文件
路径:/usr/lib/systemd/system/kube-controller-manager.service
[Unit] Description=Kubernetes Controller Manager Documentation=https://github.com/kubernetes/kubernetes
[Service] EnvironmentFile=-/opt/kubernetes/config/kube-controller-manager ExecStart=/opt/kubernetes/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_ARGS Restart=on-failure
[Install] WantedBy=multi-user.target |
1.3.1 创建kube-controller-manager参数配置文件
路径:/opt/kubernetes/config/kube-controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--logtostderr=true \ --v=2 \ --master=127.0.0.1:8080 \ --leader-elect=true \ --address=127.0.0.1 \ --service-cluster-ip-range=10.10.10.0/24 \ --cluster-name=kubernetes \ --cluster-signing-cert-file=/opt/kubernetes/ssl/ca.pem \ --cluster-signing-key-file=/opt/kubernetes/ssl/ca-key.pem \ --service-account-private-key-file=/opt/kubernetes/ssl/ca-key.pem \ --root-ca-file=/opt/kubernetes/ssl/ca.pem"
|
1.3.2 分发kue-controller-manager
向master02和master03节点机器上分发kube-apiserver相关配置文件.
scp kube-apiserver.service 192.168.0.143:/usr/lib/systemd/system scp kube-apiserver.service 192.168.0.144:/usr/lib/systemd/system
scp apiserver 192.168.0.143: /opt/kubernetes/config scp apiserver 192.168.0.144: /opt/kubernetes/config |
【注意】修改apiserver参数配置文件内容需修改为对应节点环境。
1.4 配置和启动kube-scheduler
kube-scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上。
1.4.1 创建kube-scheduler服务启动文件
路径:/usr/lib/systemd/system/kube-scheduler
[Unit] Description=Kubernetes Scheduler Documentation=https://github.com/kubernetes/kubernetes
[Service] EnvironmentFile=-/opt/kubernetes/config/kube-scheduler ExecStart=/opt/kubernetes/bin/kube-scheduler $KUBE_SCHEDULER_ARGS Restart=on-failure
[Install] WantedBy=multi-user.target |
1.4.2 创建kube-scheduler参数配置文件
路径:/usr/lib/systemd/system/kube-scheduler
KUBE_SCHEDULER_ARGS="--logtostderr=true \ --v=4 \ --master=127.0.0.1:8080 \ --leader-elect=true"
|
1.4.3 分发kue-scheduler
向master02和master03节点机器上分发kube-apiserver相关配置文件.
分发服务启动文件: #scp kube-scheduler.service 192.168.0.144:/usr/lib/systemd/system #scp kube- scheduler.service 192.168.0.145:/usr/lib/systemd/system
分发参数配置文件: #scp scheduler 192.168.0.144:/opt/kubernetes/config #scp scheduler 192.168.0.145: /opt/kubernetes/config |
【注意】修改apiserver参数配置文件内容需修改为对应节点环境
1.5 启动master节点的各个组件
Master节点上需要按顺序启动以下组件:
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
systemctl enable kube-apiserver.service
systemctl start kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl start kube-controller-manager.service
systemctl enable kube-scheduler.service
systemctl start kube-scheduler.service
一定要顺序启动etcd,在按顺序启动其他组件。
1.6 检测master节点状态
#kubectl get cs
1.7 注意事项
上述master节点是以master01(192.168.0.143)主机为例进行部署。
根据官方文档说明,我们部署高可用kubernetes集群一般最少要三台主节点(单节点除外),因此,一定注意再分发上述配置文件到master02和master03主机上后,必须要将文件中对应的节点地址那些参数修改为对应的master节点IP地址。
关于master02和master03节的部署步骤,启动方式与master01部署方式雷同,这里不再赘述。
愿你就像早晨八九点钟的太阳,活力十足,永远年轻。
标签:opt,Kubernetes,kubernetes,部署,apiserver,pem,service,master,kube 来源: https://blog.csdn.net/qq_27706119/article/details/94851972
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。