k8s集群部署四:node节点组件部署

63人阅读 评论(0) 收藏 举报
分类:

以下操作均在node节点上进行

从master上拷贝kubeconfig文件到node节点


scp /root/ssl/*kubeconfig 10.10.99.233:/opt/kubernetes/cfg/
scp /root/ssl/*kubeconfig 10.10.99.228:/opt/kubernetes/cfg/

下载并安装node节点组件


下载二进制软件包

https://dl.k8s.io/v1.9.0/kubernetes-client-linux-amd64.tar.gz

解压后找到kubelet kube-proxy这两个文件。

部署node节点组件

chmod +x kubelet kube-proxy 
mv kubelet kube-proxy /opt/kubernetes/bin/

kubelet配置


指定node节点ip和dns的ip

NODE_ADDRESS="10.10.99.233"
DNS_SERVER_IP="192.168.8.8"

NODE_ADDRESS的值一定是当前配置的node的ip

创建kubelet配置文件

cat <<EOF >/opt/kubernetes/cfg/kubelet

KUBELET_OPTS="--logtostderr=true \\
--v=4 \\
--address=${NODE_ADDRESS} \\
--hostname-override=${NODE_ADDRESS} \\
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \\
--experimental-bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \\
--cert-dir=/opt/kubernetes/ssl \\
--allow-privileged=true \\
--cluster-dns=${DNS_SERVER_IP} \\
--cluster-domain=cluster.local \\
--fail-swap-on=false \\
--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"

EOF

创建kubelet启动文件

cat <<EOF >/usr/lib/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service

[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kubelet
ExecStart=/opt/kubernetes/bin/kubelet \$KUBELET_OPTS
Restart=on-failure
KillMode=process

[Install]
WantedBy=multi-user.target
EOF

启动kubelet

systemctl daemon-reload
systemctl start kubelet.service
systemctl status kubelet.service
systemctl enable kubelet.service

这里可能会有个报错导致启动失败:error: failed to run Kubelet: cannot create certificate signing request: certificatesigningrequests.certificates.k8s.io is forbidden: User "kubelet-bootstrap" cannot create certificatesigningrequests.certificates.k8s.io at the cluster scope

原因是:kubelet-bootstrap并没有权限创建证书。所以要创建这个用户的权限并绑定到这个角色上。

解决方法是在master上执行kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

kube-proxy配置


创建kube-proxy配置文件

cat <<EOF >/opt/kubernetes/cfg/kube-proxy
KUBE_PROXY_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=${NODE_ADDRESS} \
--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig"
EOF

创建kube-proxy启动程序

cat <<EOF >/usr/lib/systemd/system/kube-proxy.service
[Unit]
Description=Kubernetes Proxy
After=network.target

[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-proxy
ExecStart=/opt/kubernetes/bin/kube-proxy \$KUBE_PROXY_OPTS
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

启动kube-proxy

systemctl daemon-reload
systemctl start kube-proxy.service
systemctl status kube-proxy.service
systemctl enable kube-proxy.service

master端检查node配置情况

这一步在master上执行

查看node证书请求

kubectl get csr

这里写图片描述

可以看到有一个节点正在等待master端同意其证书请求。(因为这里先部署了一个节点所以只有一条)

同意node证书请求

 kubectl certificate approve node-csr-DtfAV82WBocXHy732dj0C9LQat1Atk0QuDDJmXMH2k8

这里写图片描述

命令后面接上NAME,请求的状态已经变成了同意。

查看节点信息

kubectl get nodes

这里写图片描述

刚刚部署的结点已经变成ready状态

部署好第二个node后

这里写图片描述

这里在查看node状态时,因为node2刚同意证书请求,其还需要几秒钟准备时间,所以状态为notready,准备好后变为ready,两个节点正常。

至此,整个集群部署完成!!

查看评论

搭建及使用K8s集群 <k8s集群搭建>

搭建及使用K8s集群 1. 机器准备 host name ip master 192.168.6.39 node1 192.168.6.163 node2 192.168...
  • JustHaveTry
  • JustHaveTry
  • 2017-10-13 16:43:44
  • 1931

kubernetes(k8s)集群搭建

一、概述1.简介官方中文文档:https://www.kubernetes.org.cn/docs Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目...
  • Running_free
  • Running_free
  • 2017-10-29 22:52:38
  • 1473

kubernetes Pod 调度到指定的 Node

我们知道,kubernetes 的 Scheduler 服务(kube-scheduler进程)负责实现 Pod 的调度,整个调度过程通过执行一系列的算法最终为每个 Pod 计算出一个最佳的目标节点,...
  • asdf57847225
  • asdf57847225
  • 2017-10-21 14:02:06
  • 1498

kubeadm部署k8s集群(1.9.2)

Kubeadm部署K8S集群(1.9.2) Kubeadm 目前处于beta状态,官网上说2018年会推出GA版本。从我的安装体验来说:确实比存手动安装省事太多太多了! 1、环境清单 ...
  • chenleiking
  • chenleiking
  • 2018-02-12 13:24:12
  • 990

kubernetes 1.3 的安装和集群环境部署

简介: Docker:是一个开源的应用容器引擎,可以为应用创建一个轻量级的、可移植的、自给自足的容器。 Kubernetes:由Google开源的Docker容器集群管理系统,为容器化的应用提供资源...
  • mideagroup
  • mideagroup
  • 2016-07-28 21:11:48
  • 2441

Kubernetes集群中部署Node节点

Kubernetes集群中的Node节点部署kubernetes的Node节点包含如下组件: flanneld docker kubelet kube-proxy 环境变量需要的变量。$ # 替换为 ...
  • GreatElite
  • GreatElite
  • 2017-10-16 14:38:51
  • 1925

创建k8s集群(仅限于理论,无实践)

创建k8s集群(仅限于理论,无实践)   k8s可以在多种平台运行,笔记本电脑,到云服务商的虚拟机,再到机架上的裸机服务器.要创建一个k8s集群,可以根据多种不同的场景做不...
  • shanyongxu
  • shanyongxu
  • 2016-06-06 00:52:25
  • 3287

kubernetes(k8s)以及涉及组件简单介绍

本文主要介绍了kubernetes涉及的相关组件以及一些基本概念的介绍。从部署搭建以及运行的角度说明了底层docker以及数据存储相关的etcd的一些基础知识以及涉及的相关合核心内容,让读者针对k8s...
  • qq_35254726
  • qq_35254726
  • 2017-01-08 14:38:32
  • 17574

搭建及使用K8s集群 <k8s 集群部署springcloud 多应用>

k8s 集群部署springcloud 多应用单应用能够顺利部署,加上k8s dns能够解析,那多应用就很简单了,如果前两步不成功的可以参考我前几篇博客 http://blog.csdn.net/Ju...
  • JustHaveTry
  • JustHaveTry
  • 2017-10-16 14:43:52
  • 1384

K8S实战——SIG PIPE问题造成kubernetes集群工作不正常的分析

本文简单介绍在实际使用K8S集群的过程中,因为Go的SIG PIPE bug造成较老版本的Docker,flannel,kubernetes相关进程运行一段时间后就退出造成集群工作不稳定的问题的发现、...
  • xingwangc2014
  • xingwangc2014
  • 2016-06-05 22:30:42
  • 3190
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 1180
    排名: 4万+
    最新评论
  • Ansible基础

    d17045573: hi,朋友,非常感谢你的分享,我从你的博客中学习到了很多东西,有一些东西我摘录到了我的博客中,我的...