两种方式安装k8s:

  1. 传统方式,使用二进制。

    • 优点:能够让我们更清楚k8s的组件关系,可扩展性强,可定制化
    • 缺点:不利于新手部署
  2. 使用kubeadm安装
    • 优点:简单,高效
    • 缺点:所有的事情都被kudeadm工具帮我们部署了,可扩展性差,不可定制化

这里介绍使用kubeadm安装的步骤:

  1. 1. master:安装kubeletkubeadmdockerkubeclt客户端,然后初始化,生成令牌,供node端加入
  2. 2. node01:安装kubeletkubeadmdocker后,join 直接加入集群即可
  3. 3. node02:安装kubeletkubeadmdocker后,join 直接加入集群即可
PS:在CentOS中安装K8S只能在Centos7的系统上进行安装,原因是Linux 内核的版本必须是 3.10 以上

master、node机器初始化


改IP,改hostname,改hosts,关机
  1. ##### -----------------master:-------------------
  2. echo "master" > /etc/hostname
  3. cat <<EOF >> /etc/hosts
  4. 192.168.225.151 master
  5. 192.168.225.152 node01
  6. 192.168.225.153 node02
  7. EOF
  8. sed -i s#IPADDR=192.168.3.206#IPADDR=192.168.3.207#g /etc/sysconfig/network-scripts/ifcfg-ens33
  9. sed -i s/UUID/#UUID/g /etc/sysconfig/network-scripts/ifcfg-ens33
  10. reboot
  11. ##### -----------------node01:-------------------
  12. echo "node01" > /etc/hostname
  13. cat <<EOF >> /etc/hosts
  14. 192.168.225.151 master
  15. 192.168.225.152 node01
  16. 192.168.225.153 node02
  17. EOF
  18. sed -i s#IPADDR=192.168.3.206#IPADDR=192.168.3.208#g /etc/sysconfig/network-scripts/ifcfg-ens33
  19. sed -i s/UUID/#UUID/g /etc/sysconfig/network-scripts/ifcfg-ens33
  20. reboot
  21. ##### -----------------node02:-------------------
  22. echo "node02" > /etc/hostname
  23. cat <<EOF >> /etc/hosts
  24. 192.168.225.151 master
  25. 192.168.225.152 node01
  26. 192.168.225.153 node02
  27. EOF
  28. sed -i s#IPADDR=192.168.3.206#IPADDR=192.168.3.209#g /etc/sysconfig/network-scripts/ifcfg-ens33
  29. sed -i s/UUID/#UUID/g /etc/sysconfig/network-scripts/ifcfg-ens33
  30. reboot
master节点
  1. # 下载yum源
  2. cd /etc/yum.repos.d/
  3. wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4. yum -y install docker-ce-18.06.1.ce-3.el7
  5. systemctl enable docker&& systemctl start docker
  6. # kubernetes的yum源
  7. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  8. [kubernetes]
  9. name=Kubernetes
  10. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  11. enabled=1
  12. gpgcheck=1
  13. repo_gpgcheck=1
  14. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  15. EOF
  16. # kubelet是k8s的管理工具
  17. # kubeadm是k8s的安装工具
  18. # kubectl是k8s的客户端
  19. # ----V1.13.3版本----
  20. yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.3 kubernetes-cni-0.6.0
  21. # ----V1.15版本------
  22. yum install -y kubelet kubeadm kubectl
  23. # 忽略swap报错
  24. cat <<EOF > /etc/sysconfig/kubelet
  25. KUBELET_EXTRA_ARGS="--fail-swap-on=false"
  26. EOF
  27. # 更加转发等功能
  28. cat <<EOF > /etc/sysctl.d/k8s.conf
  29. net.bridge.bridge-nf-call-ip6tables = 1
  30. net.bridge.bridge-nf-call-iptables = 1
  31. net.ipv4.ip_forward = 1
  32. EOF
  33. # 让配置生效
  34. sysctl --system
  35. # 开机自启动kubelet
  36. systemctl enable kubelet
  37. # -----------------1.13.3版本----------------
  38. kubeadm init \
  39. --apiserver-advertise-address=192.168.225.151 \
  40. --image-repository registry.aliyuncs.com/google_containers \
  41. --kubernetes-version v1.13.3 \
  42. --service-cidr=10.1.0.0/16 \
  43. --pod-network-cidr=10.2.0.0/16 \
  44. --service-dns-domain=cluster.local \
  45. --ignore-preflight-errors=Swap \
  46. --ignore-preflight-errors=NumCPU
  47. # ----------------1.15.0版本---------------
  48. kubeadm init \
  49. --apiserver-advertise-address=192.168.3.207 \
  50. --image-repository registry.aliyuncs.com/google_containers \
  51. --kubernetes-version v1.15.0 \
  52. --service-cidr=10.1.0.0/16 \
  53. --pod-network-cidr=10.2.0.0/16 \
  54. --service-dns-domain=cluster.local \
  55. --ignore-preflight-errors=Swap \
  56. --ignore-preflight-errors=NumCPU
  57. # ----------------------参数说明-------------------------
  58. --apiserver-advertise-address:指定用 Master 的哪个IP地址与 Cluster的其他节点通信。
  59. --service-cidr:指定Service网络的范围,即负载均衡VIP使用的IP地址段。
  60. --pod-network-cidr:指定Pod网络的范围,即PodIP地址段。
  61. --image-repositoryKubenetes默认Registries地址是k8s.gcr.io,在国内并不能访问 gcr.io,在1.13版本中我们可以增加-image-repository参数,默认值是k8s.gcr.io,将其指定为阿里云镜像地址:registry.aliyuncs.com/google_containers
  62. --kubernetes-version=v1.13.3:指定要安装的版本号。
  63. --ignore-preflight-errors=:忽略运行时的错误,例如上面目前存在[ERROR NumCPU]和[ERROR Swap],忽略这两个报错就是增加--ignore-preflight-errors=NumCPU 和--ignore-preflight-errors=Swap的配置即可
  64. ------------------------------kubeadm init干了什么?--------------------
  65. [init]:指定版本进行初始化操作
  66. [preflight] :初始化前的检查和下载所需要的Docker镜像文件
  67. [kubelet-start] :生成kubelet的配置文件”/var/lib/kubelet/config.yaml”,没有这个文件kubelet无法启动,所以初始化之前的kubelet实际上启动失败。
  68. [certificates]:生成Kubernetes使用的证书,存放在/etc/kubernetes/pki目录中。
  69. [kubeconfig] :生成 KubeConfig 文件,存放在/etc/kubernetes目录中,组件之间通信需要使用对应文件。
  70. [control-plane]:使用/etc/kubernetes/manifest目录下的YAML文件,安装 Master 组件。
  71. [etcd]:使用/etc/kubernetes/manifest/etcd.yaml安装Etcd服务。
  72. [wait-control-plane]:等待control-plan部署的Master组件启动。
  73. [apiclient]:检查Master组件服务状态。
  74. [uploadconfig]:更新配置
  75. [kubelet]:使用configMap配置kubelet
  76. [patchnode]:更新CNI信息到Node上,通过注释的方式记录。
  77. [mark-control-plane]:为当前节点打标签,打了角色Master,和不可调度标签,这样默认就不会使用Master节点来运行Pod
  78. [bootstrap-token]:生成token记录下来,后边使用kubeadm join往集群中添加节点时会用到
  79. [addons]:安装附加组件CoreDNSkube-proxy
  80. # 系统提示步骤
  81. mkdir -p $HOME/.kube
  82. cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  83. chown $(id -u):$(id -g) $HOME/.kube/config
  84. # 打通网络
  85. cd ~
  86. kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  87. [github地址](https://github.com/coreos/flannel)
  88. # 创建密钥
  89. kubeadm token create --print-join-command
node节点
  1. # 安装docker的yum源
  2. cd /etc/yum.repos.d/
  3. wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4. yum -y install docker-ce-18.06.1.ce-3.el7
  5. systemctl enable docker&& systemctl start docker
  6. # 写入k8s的yum源
  7. cat <<EOF > /etc/yum.repos.d/kubernetes.repo
  8. [kubernetes]
  9. name=Kubernetes
  10. baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
  11. enabled=1
  12. gpgcheck=1
  13. repo_gpgcheck=1
  14. gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
  15. EOF
  16. # 下载k8s的组件
  17. ----V1.13.3版本----
  18. yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.3 kubernetes-cni-0.6.0
  19. ----V1.15版本------
  20. yum install -y kubelet kubeadm kubectl
  21. # 忽略swap错误
  22. cat <<EOF > /etc/sysconfig/kubelet
  23. KUBELET_EXTRA_ARGS="--fail-swap-on=false"
  24. EOF
  25. # 开启系统转发
  26. cat <<EOF > /etc/sysctl.d/k8s.conf
  27. net.bridge.bridge-nf-call-ip6tables = 1
  28. net.bridge.bridge-nf-call-iptables = 1
  29. net.ipv4.ip_forward = 1
  30. EOF
  31. # 让配置生效
  32. sysctl --system
  33. # 设置服务开机自启动
  34. systemctl enable kubelet
  35. # 加入集群(令牌过期作废)
  36. kubeadm join 192.168.3.207:6443 --token a4645k.pq7e5e34y9sl9g53 --discovery-token-ca-cert-hash sha256:abd02c82cdefbcc2d17a2f53ec9b376e31d123ef33af880608d97f64b12a65f5 --ignore-preflight-errors=Swap

赵班长:

https://mp.weixin.qq.com/s?__biz=MzI5MjA5Mjg5OA==&mid=2247484395&idx=1&sn=0767cc24ec99ce818e41f7c40dda5d23&chksm=ec07ed66db7064707b05a9dda9c23882b9106577fc5f1ef45a9d78e6a93a57a5f507210207ae&token=1791180619&lang=zh_CN#rd

K8S的安装的更多相关文章

  1. kubernetes(k8s) helm安装kafka、zookeeper

    通过helm在k8s上部署kafka.zookeeper 通过helm方法安装 k8s上安装kafka,可以使用helm,将kafka作为一个应用安装.当然这首先要你的k8s支持使用helm安装.he ...

  2. 使用k8s operator安装和维护etcd集群

    关于Kubernetes Operator这个新生事物,可以参考下文来了解这一技术的来龙去脉: https://yq.aliyun.com/articles/685522?utm_content=g_ ...

  3. 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法

    目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...

  4. 国内不fq安装K8S二: 安装kubernet

    目录 2 安装kubelet 2.1 环境准备 2.2 设置国内的源 2.3 重要的设置 2.4 获取镜像 2.5 使用kubeadm init初始化集群 2.6 安装Pod Network 2.7 ...

  5. 国内不fq安装K8S一: 安装docker

    目录 1.安装docker 1.1 准备工作 1.2 安装docker 1.3 修改cgroup 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国内不fq ...

  6. [转帖]容器云之K8s自动化安装方式的选择

    容器云之K8s自动化安装方式的选择 时间 2016-12-05 19:10:53  极客头条 原文  http://geek.csdn.net/news/detail/127426 主题 Kubern ...

  7. Kubernetes(k8s)完整安装教程

    Kubernetes(k8s)完整安装教程  2019-08-27 2.3k 记录 发表评论 目录 1 安装 1.1 安装 Docker 1.2 安装 VirtualBox 1.3 安装 kubect ...

  8. k8s Docker 安装

    k8s Docker 安装 一.运行环境 Centos 7.7 虚拟机内核为 3.10 基础组件版本: k8s.gcr.io/kube-apiserver:v1.16.0 k8s.gcr.io/kub ...

  9. k8s上安装elasticsearch集群

    官方文档地址:https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html yaml文件地址:https://dow ...

  10. K8S配置安装全过程

    V1.11.1https://github.com/kubernetes/kubernetes/releases/tag/v1.11.1环境准备:系统:centos7.2.1511[root@mast ...

随机推荐

  1. 【转】Java8 Stream 流详解

      当我第一次阅读 Java8 中的 Stream API 时,说实话,我非常困惑,因为它的名字听起来与 Java I0 框架中的 InputStream 和 OutputStream 非常类似.但是 ...

  2. Centos7 安装 Cockpit

    1sudo yum -y install epel-release sudo yum -y update sudo shutdown -r now 2yum -y install cockpit sy ...

  3. 记录集导出到Excel方法

    记录集导出到Excel方法   Public Function ExportToExcel(RSrecord As ADODB.Recordset, Titles_Name)'============ ...

  4. CSS中的z-index属性如何使用

    z-index属性介绍 只有设置了定位我们才会使用到该z-index属性,如:固定定位.相对定位.绝对定位. 定位元素默认的z-index属性值是0. 如果2个定位的元素都没有设置z-index属性, ...

  5. hz和s和脉冲

    先弄清楚定义,HZ是频率的单位,而s是周期的单位:而f=1/T. 故1hz=1s:5hz=1/5=0.02s; 占空比    占空比(Duty Ratio)在电信领域中有如下含义:    在一串理想的 ...

  6. 树链剖分-Hello!链剖-[NOIP2015]运输计划-[填坑]

    This article is made by Jason-Cow.Welcome to reprint.But please post the writer's address. http://ww ...

  7. 如何使用 idea提交svn代码

    链接:https://jingyan.baidu.com/article/b2c186c80d81b1c46ff6ff59.html

  8. 图片上传 一张展示,base64图片获取

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 关于MultiAutoCompleteTextView的用法:多文本匹配

  10. 【资源分享】RPG Maker 2000/2003 简体中文版

    *----------------------------------------------[下载区]----------------------------------------------* ...