系统环境:

node节点 操作系统: CentOS-7-x86_64-DVD-1908.iso

node节点 IP地址: 192.168.1.204

node节点 hostname(主机名, 请和保持node节点主机名 和master不同):k8s.node03

目标: 在该机器安装k8s node节点,并加入指定集群

步骤如下:

1. 安装基础工具

    

  1. yum install vim
  2. yum install lrzsz
  3. yum install docker
    systemctl start docker
    systemctl enable docker

2. 检查node节点所在系统时间,若和master节点时间不同,请修改node节点和master节点保持一致(我这里时间和master基本一致,故不修改),修改时间的方式请 参考这里

  1. [root@k8s ~]# date
  2. Sun Oct :: EDT
  3. [root@k8s ~]#

3. 关闭防火墙, 如果是公网主机请设置网络安全组,开放必要端口

  1. systemctl stop firewalld
  2. systemctl disable firewalld

4. 关闭SELINUX

  1. setenforce

编辑文件  vim /etc/selinux/config 如下

  1. # This file controls the state of SELinux on the system.
  2. # SELINUX= can take one of these three values:
  3. # enforcing - SELinux security policy is enforced.
  4. # permissive - SELinux prints warnings instead of enforcing.
  5. # disabled - No SELinux policy is loaded.
  6. SELINUX=disabled
  7. # SELINUXTYPE= can take one of three values:
  8. # targeted - Targeted processes are protected,
  9. # minimum - Modification of targeted policy. Only selected processes are protected.
  10. # mls - Multi Level Security protection.
  11. SELINUXTYPE=targeted

5. 创建k8s配置文件 /etc/sysctl.d/k8s.conf

  1. cat <<EOF > /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables =
  2. net.bridge.bridge-nf-call-iptables =
  3. net.ipv4.ip_forward = 1
    EOF

6. 执行以下命令使修改生效.

  1. modprobe br_netfilter
  2. sysctl -p /etc/sysctl.d/k8s.conf

7.添加k8s yum源

  1. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  2. [k8s]
  3. name=Kubernetes
  4. baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
  5. enabled=
  6. gpgcheck=
  7. repo_gpgcheck=
  8. gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
  9. http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  10. EOF
    yum makecache

8.安装kubelet, kubectl kubeadm (指定版本号(1.13.1)安装时 这三个东西请按照以下顺序安装)

  1. yum install -y kubelet-1.13.
  2. yum install kubectl-1.13.
  3. yum install kubeadm-1.13.

9.检查已安装的kubelet kubectl kubeadm 版本号

  1. [root@k8s ~]# yum list installed|grep kube
  2. kubeadm.x86_64 1.13.- @k8s
  3. kubectl.x86_64 1.13.- @k8s
  4. kubelet.x86_64 1.13.- @k8s
  5. kubernetes-cni.x86_64 0.6.- @k8s

10.拉取必要docker 镜像. 因为网络(需要梯子),如果node节点所在网络有梯子(可以直接访问到域名 k8s.gcr.io),那么这个步骤可以忽略。

10.1,我这里的master节点的这些基础docker 镜像的获取方式如下。当然这些命令可以在node节点重新执行一遍,为了节约下载镜像时间,我直接从master节点打包发送到node节点

  1. docker pull docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
  2. docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1
  3. docker pull docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.13.1
  4. docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.13.1 k8s.gcr.io/kube-controller-manager:v1.13.1
  5. docker pull docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.13.1
  6. docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.13.1 k8s.gcr.io/kube-scheduler:v1.13.1
  7. docker pull docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.13.1
  8. docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.13.1 k8s.gcr.io/kube-proxy:v1.13.1
  9. docker pull docker.io/mirrorgooglecontainers/pause-amd64:3.1
  10. docker tag docker.io/mirrorgooglecontainers/pause-amd64:3.1 k8s.gcr.io/pause:3.1
  11. docker pull docker.io/mirrorgooglecontainers/etcd-amd64:3.2.
  12. docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.2. k8s.gcr.io/etcd:3.2.
  13. docker pull docker.io/coredns/coredns:1.2.
  14. docker tag docker.io/coredns/coredns:1.2. k8s.gcr.io/coredns:1.2.

10.2 , 【master节点】将master节点的所有必要docker 镜像保存成压缩包(如果你安装的不是1.13.1,那么save的时候这些tag请和 docker images 对照,切莫写错tag),并复制到node节点所在设备

  1. docker save k8s.gcr.io/kube-proxy:v1.13.1 k8s.gcr.io/coredns:1.2. k8s.gcr.io/kube-controller-manager:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1 k8s.gcr.io/kube-scheduler:v1.13.1 k8s.gcr.io/etcd:3.2. k8s.gcr.io/pause:3.1 -o k8s.1.13..tar
  2. scp k8s.1.13..tar 192.168.1.204:~/

10.3 , 【node节点】从压缩包 恢复docker镜像

  1. cd ~
  2. docker load -i k8s.1.13..tar

11. 关闭 swap

  1. swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
  2. echo "vm.swappiness=0">>/etc/sysctl.d/k8s.conf
  3. sysctl -p /etc/sysctl.d/k8s.conf
  4. echo 'Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false"'>>/etc/systemd/system/kubelet.service.d/-kubeadm.conf
  5. systemctl daemon-reload
  6. systemctl restart kubelet

12. 添加到集群

  1. kubeadm join 192.168.1.201: --token 6xnc86.n3ftiy9cu9wuyl5a --discovery-token-ca-cert-hash sha256:6dbcec4d2e20e8936e8d74714a194fa838cc6544f98bde41cd766b69b7a4fc12

13. 【master节点】检查该节点是否部署成功,可以看到k8s.node03已添加成功

  1. [root@localhost ~]# kubectl get nodes
  2. NAME STATUS ROLES AGE VERSION
  3. k8s.node01 Ready <none> 6h27m v1.13.1
  4. k8s.node02 Ready <none> 6h38m v1.13.1
  5. k8s.node03 Ready <none> 61s v1.13.1
  6. localhost.localdomain Ready master 7h32m v1.13.1

k8s node节点部署(v1.13.10)的更多相关文章

  1. K8s多节点部署+负载均衡+keepalived ——囊萤映雪

    K8s多节点部署+负载均衡+keepalived --囊萤映雪 1.多节点master2 部署 2.负载均衡部署+keepalived 1.多节点master2部署: #从master01节点上拷贝证 ...

  2. K8s集群部署(三)------ Node节点部署

    之前的docker和etcd已经部署好了,现在node节点要部署二个服务:kubelet.kube-proxy. 部署kubelet(Master 节点操作) 1.二进制包准备 [root@k8s-m ...

  3. 在node节点部署kubectl管理k8s集群

    感谢!原文链接:https://blog.csdn.net/sinat_35930259/article/details/79994078 kubectl是k8s的客户端程序,也是k8s的命令行工具, ...

  4. Kubernetes1.91(K8s)安装部署过程(六)--node节点部署

    hi,everybody,我回来了,之前安装到flannel之后,文章一直没有更新,甚至不少小伙伴都来加qq询问是否继续更新了, 这里说明下原因,我在部署1.91node的时候的确出现了各种各样的问题 ...

  5. Node节点部署

    一.部署kubelect 二进制包准备 将软件包从linux-node1复制到linux-node2.linux-node3中去 [root@linux-node1 ~]# cd /usr/local ...

  6. kubernetes Node节点部署(四)

    一.部署kubelet 1.1.二进制包准备 将软件包从linux-node1复制到linux-node2中去 [root@linux-node1 ~]# cd /usr/local/src/kube ...

  7. k8s容器-节点部署篇

    一. k8s节点部署 1. 环境规划 系统环境概述 系统环境说明 操作系统 Ubuntu16.04 or CentOS7 选的是CentOS7        -        Kubernetes版本 ...

  8. Kubernetes集群部署之五node节点部署

    Node节点是Kubernetes集群中的工作负载节点.每个node都会被master分配一些工作负载,每个node节点都运行以下关键服务进程.Kubelet :负责pod对应的容器的创建.启停等任务 ...

  9. Kubernetes学习之路(四)之Node节点二进制部署

    K8S Node节点部署 1.部署kubelet (1)二进制包准备 [root@linux-node1 ~]# cd /usr/local/src/kubernetes/server/bin/ [r ...

随机推荐

  1. k8s记录-安装ansible

    ##1.安装1) python版本需要2.6以上,不过通过centos7都会默认安装上python2.7.5,查看方法:python -V2) 添加yum 源a.vim /etc/yum.repos. ...

  2. VLOOKUP使用方法

    VLOOKUP函数是常用的一个内容查找函数,用于通过某一条件查询数据源中需要的内容.语法:=VLOOKUP(查询值,数据源,显示序列,匹配参数)1)查询值:匹配的key值2)数据源:查找范围,1)起点 ...

  3. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器启用https服务申请免费证书

    背景分析 目前想在 web 上使用 HTTPS 的话, 你需要获得一个证书文件, 该证书由一个受浏览器信任的公司所签署. 一旦你获得了它, 你就在你的 web 服务器上指定其所在的位置, 以及与你关联 ...

  4. Docker实践之04-操作容器

    目录 一.查看容器列表 二.启动容器 三.终止容器 四.重启容器 五.后台运行容器 六.获取容器输出信息 七.进入容器 八.导出和导入容器 九.删除容器 一.查看容器列表 可以使用命令docker c ...

  5. maven 国内镜像

    <mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given reposi ...

  6. 【springcloud】Transaction rolled back because it has been marked as rollback-only

    问题: 一个ajax请求,发生系统错误,错误内容:Transaction rolled back because it has been marked as rollback-only 原因是调用的s ...

  7. python综合作业要求

    要求: 1.课程成绩数据(学号尾数为0,1同学完成) 至少要完成内容:分析每年不同班级平均成绩情况.不同年份总体平均成绩情况.不同性别学生成绩情况,并用一定图表展示. 2.集美大学各省录取分数数据(学 ...

  8. gtest入门

    介绍 gtest是谷歌开发的用来做C++单元测试的测试框架 基本概念 使用gtest,你就需要写断言(assertions),用来检查一个表达式是否为true.断言的结果有三个:正确.非致命错误.致命 ...

  9. C++中STL中简单的Vector的实现

    该vector只能容纳标准库中string类, 直接上代码了,StrVec.h文件内容为: #ifndef STRVEC_H #define STRVEC_H #include<iostream ...

  10. Python 入门(3):运算符

    Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 Python算术运算符: + 加 两个对象相加 a + ...