kubeadm是Kubernetes官方提供的用于快速安装 Kubernetes 集群的工具,通过将集群的各个组件进行容器化安装管理,通过kubeadm的方式安装集群比二进制的方式安装要方便不少,但是目录kubeadm还处于beta状态,还不能用于生产环境,Using kubeadm to Create a Cluster文档中已经说明kubeadm将会很快能够用于生产环境了。

准备三台centos的机器

为了后续方便,每台机器的hosts文件加上这个。

192.168.211.131 master
192.168.211.132 note1
192.168.211.133 note2
复制代码

关闭centos自带的防火墙

systemctl disable firewalldsystemctl stop firewalld
复制代码

添加yum仓库

可以去阿里云的仓库(opsx.alibaba.com/mirror)下载相应的仓库至/etc/yum.repos.d目录下。 如:

  • docker(mirrors.aliyun.com/docker-ce/l…)
  • kubernetes 没有现成的repo需要我们自己写一个。
    kubernetes.repo
[kubernetes]
name=kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
enabled=1复制代码

如果出现gpgkey检查有问题,我们就自己手动import下。

wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpgrpm --import yum-key.gpg复制代码

安装docker,kubectl,kubeadm,kubelet,

yum install docker-ce kubelet kubeadm kubectl
复制代码

启动docker

在启动docker之前,为了后续安装k8s方便(添加代理),需要修改dokcer服务配置文件。

vim /usr/lib/systemd/system/docker.service
复制代码

添加两个环境变量

Environment="HTTPS_PROXY=http://192.168.137.1:10080" //自己的代理
Environment="NO_PROXY=127.0.0.0/8,172.20.0.0/16"复制代码

启动docker

systemctl daemon-reload//重新加载配置
systemctl start docker
systemctl enable docker //开启自启动
复制代码

注意检查/proc/sys/net/bridge/bridge-nf-call-ip6tables和/proc/sys/net/bridge/bridge-nf-call-iptables,保证值为1,为了保证后面iptables正常的桥接功能

如果不是1,可以设设置下。

echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
echo '1' > /proc/sys/net/bridge/bridge-nf-call-ip6tables复制代码

设置kubelet(忽略swap),同时设置为开机启动。

vim /etc/sysconfig/kubeletsystemctl enable kubelet
复制代码

也可以禁用swap

sudo swapoff -ased -i '/ swap / s/^/#/' /etc/fstab
复制代码

用yum源的方式安装的kubelet生成的配置文件将参数--cgroup-driver改成了systemd,而docker的

cgroup-driver是cgroupfs,这二者必须一致才行,我们可以通过docker info命令查看

如果不一致,可以修改文件kubelet的配置文件/etc/systemd/system/kubelet.service.d/10-

kubeadm.conf,将其中的KUBELET_CGROUP_ARGS参数更改成cgroupfs:

Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
复制代码

或者修改docker配置文件 vim /etc/docker/daemon.json

 {"exec-opts": ["native.cgroupdriver=systemd"]
}
复制代码
[root@note2 hanyajun]# systemctl daemon-reload
[root@note2 hanyajun]# systemctl restart docker
复制代码

初始化集群

在master节点上用kubeadm命令来初始化我们的集群了

kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap复制代码

命令非常简单,就是kubeadm init,后面的参数是需要安装的集群版本,因为我们这里选择flannel作为 Pod 的网络插件,所以需要指定–pod-network-cidr=10.244.0.0/16,然后是apiserver的通信地址,这里就是我们master节点的IP 地址。执行上面的命令,如果出现 running with swap on is not supported. Please disable swap之类的错误,则我们还需要增加一个参数–ignore-preflight-errors=Swap来忽略swap的错误提示信息: 在这里插入图片描述

安装 Pod Network

For Kubernetes v1.7+ (github.com/coreos/flan…)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
复制代码

安装完成后使用kubectl get pods命令可以查看到我们集群中的组件运行状态,如果都是Running状态的话,那么恭喜你,你的master节点安装成功了。

[root@master hanyajun]# kubectl get pods --all-namespaces
NAMESPACE     NAME                             READY   STATUS    RESTARTS   AGE
kube-system   coredns-fb8b8dccf-ddpzg          1/1     Running   0          61m
kube-system   coredns-fb8b8dccf-ptz2g          1/1     Running   0          61m
kube-system   etcd-master                      1/1     Running   0          60m
kube-system   kube-apiserver-master            1/1     Running   0          60m
kube-system   kube-controller-manager-master   1/1     Running   0          60m
kube-system   kube-flannel-ds-amd64-ts46h      1/1     Running   0          55m
kube-system   kube-proxy-wjv4g                 1/1     Running   0          61m
kube-system   kube-scheduler-master            1/1     Running   0          60m
[root@master hanyajun]#
复制代码

添加节点

直接在 Node 节点上执行kubeadm join命令

kubeadm join 192.168.211.131:6443 --token ferqkx.ituywx5n5cxx9mko --discovery-token-ca-cert-hash sha256:f3af0e15c4f6c27327fd04bdcaff97525030bb55ee80f72c118284efaf074cdc --ignore-preflight-errors=Swap
复制代码

可以直接在master通过下面这个指令查看节点情况


[root@master hanyajun]# kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
master   Ready    master   96m     v1.14.1
note1    Ready    <none>   24m     v1.14.1
note2    Ready    <none>   4m46s   v1.14.1
[root@master hanyajun]#复制代码

到这里就算我们的集群部署成功了,接下来就可以根据我们的需要安装一些附加的插件,比如 Dashboard、Heapster、Ingress-Controller等等。

转载于:https://juejin.im/post/5cc2a8db5188252e3c711167

k8s从入门到放弃--使用kubeadm快速安装kubernetes相关推荐

  1. k8s dashboard_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0

    号外号外,后面所有提升视频都会更新到知乎和B站上去,不会直接发群里了,哈哈,能看懂这句话的我都认识,大家可以先关注一下,我知乎上的所有文档也会录成视频 更多视频详见 杨哥天云:https://spac ...

  2. board crt_【大强哥-k8s从入门到放弃02】Kubernetes1.17部署Dashboard2.0

    号外号外,后面所有提升视频都会更新到知乎和B站上去,不会直接发群里了,哈哈,能看懂这句话的我都认识,大家可以先关注一下,我知乎上的所有文档也会录成视频 我马上就开B站账号,录制点儿走心的视频,呼呼 开 ...

  3. 基于kubeadm快速部署kubernetes K8S V1.17.4集群-无坑完整版

    基于kubeadm快速部署kubernetes K8S V1.17.4集群,并部署Dashboard Web页面,实现可视化查看Kubernetes资源 主机配置规划 服务器名称(hostname) ...

  4. 最新版kubeadm快速部署Kubernetes

    最新版kubeadm快速部署Kubernetes kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具 一.操作要求 在开始之前,部署kubernetes集群需要满足以下几个条 ...

  5. kubeadm方式安装kubernetes

    一.kubenetes搭建方式有三种:         1.minikube (通常在测试环境使用,不要在生产环境中使用)         2.kubeadm (是一种快速部署kubernetes的方 ...

  6. ② kubeadm快速部署Kubernetes集群

    文章目录 1. 安装要求 2. 目标 3. 准备环境 4. 所有节点安装Docker/kubeadm/kubelet 4.1 安装Docker(以一台为例,其他相同) 4.2 添加kubernetes ...

  7. 【Kubernetes】在CentOS7上通过kubeadm工具快速安装Kubernetes集群(一)

    此文作为学习<Kubernetes权威指南>的相关笔记,可以参考,不适合直接使用 参考文章: https://www.jianshu.com/p/cd4d1fde08bc https:// ...

  8. 轻松快速安装Kubernetes dashboard

    安装前需要准备工作: 1.虚拟机工具VirtualBox 2.系统镜像文件CentOS 7 3.安装好虚拟机2-3台 本次教程使用的是三台虚拟机: 192.168.4.13 k8s-master 19 ...

  9. 使用 KubeKey 快速安装 Kubernetes 集群

    Kubernetes 可能是正确启动和运行的真正挑战.当您真的希望快速完成时尤其如此,以便您可以创建测试或开发环境或只是熟悉它的工作原理.每次需要一个多节点集群时,您可能没有时间启动一个多节点集群.在 ...

最新文章

  1. 你认识这些布道师吗?
  2. C#操作XML小结_转载
  3. Web负载均衡学习笔记之K8S内Ngnix微服务服务超时问题
  4. python fieldnames_csvreader.fieldnames在python中未被识别为csv reader对象的属性
  5. 【微信小程序】数组操作
  6. ros-Qt代码环境的搭建
  7. oracle基础与应用
  8. drupal 字符串替换符号 @ % !
  9. Java并发编程-线程安全基础
  10. 比较两个sheet页中的内容,自动切换
  11. Windows10---开启FTP服务与配置
  12. 华为自带时钟天气下载_华为天气时钟农历插件,求华为自带的天气时钟
  13. 支付宝转账到银行卡/隐藏部分卡号
  14. 微型计算机原理(第六版)姚向华编著(转载请注明出处---https://www.cnblogs.com/qingl)...
  15. ssh-hostbased配置方法
  16. 8.1 有监督学习算法
  17. 天津大学软件学院 研究生学位申请的学术成果要求
  18. Word Rotator‘s Distance——WRD算法应用
  19. www.beizi8.cn居然有pr了
  20. python将object转换为float_object怎么转换成float数据

热门文章

  1. 面向对象的程序开发技术C++教学课件系列之二
  2. Golang list双向链表源码走读
  3. 第二部分 自动内存管理机制
  4. 框架源码专题:Spring的Aop实现原理,Spring AOP 与 AspectJ 的关系
  5. 在百度超级链Xuper上部署智能合约并实现存证功能
  6. android module 加载.so,关于Android Studio主Module与依赖Module同时引入so库的问题
  7. Spring Cloud Sleuth+Zipkin 构建微服务链路跟踪系统
  8. 实战系列-被面试官问到Feign原理
  9. K8s入门教程|这个给集群搞硬装的才是幕后英雄
  10. 用etcd实现比Redis更安全的分布式锁