• docker version:19.03.14
  • kubernetes version:1.19.4

本文介绍使用kubeadm安装Kubernetes集群的简单过程。

使用kubeadm安装k8s过程

各节点安装的软件及操作:

  1. master,nodes:安装docker、kubelet、kubeadm、kubectl
  2. master:kubeadm init
  3. nodes:kubadm join

安装

基本配置

  1. 关闭iptables、firewalld、selinux
  2. br_filter
# 未启用模块则无此目录及文件;通过modprobe br_netfilter命令启用
# 查看值是否均为1
cat /proc/sys/net/bridge/bridge-nf-call-iptables
cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
  1. 替换安装源

    替换安装源为国内速度较快的源

使用阿里云docker源安装docker

# step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
yum makecache fast
yum -y install docker-ce
# Step 4: 开启Docker服务
service docker start # 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# yum -y install docker-ce-[VERSION]

使用阿里云kebernetes源安装kubernetes

# 由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用 yum install -y --nogpgcheck kubelet kubeadm kubectl 安装
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
  1. 时间一致

    确认服务器间时间同步一致
  2. 更换docker仓库
# 使用aliyun docker仓库或其它
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4bu92zt0.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

初始化kubernetes master

初始化命令

# 指定网络信息;10.244.0.0/16是flannel的默认地址段,学习使用期间为了省事建议不修改。
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.0.0.0/12

错误解决

[ERROR Swap]: running with swap on is not supported

# 关闭Swap或添加ignore选项参数忽略
# 更改配置文件
cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
# 使用错误忽略参数再次执行
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.0.0.0/12 --ignore-preflight-errors=Swap

初始化过程会拉取一些相关docker镜像包,也可以通过命令提前拉取,减少等待

kubeadm config images pull

初始化中的一些问题

安装kubernetes必须组件的一些镜像存储于google镜像站点,无法正常访问,可以通过网络上其他人已经共享的同步好的仓库来拉取这些必要的镜像

# 查看所要拉取的镜像
kubeadm config images list # 通过网络上其他人已共享的仓库拉取;指定仓库地址
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.0.0.0/12 --ignore-preflight-errors=Swap --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers"

初始化完成后的一些操作

按照提示进行以下操作

# 配置kubectl向API服务器请求时的验证信息
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

初始化完成后记得保存以下信息,然后在nodes节点上执行以下命令使其加入kubernetes集群

kubeadm join 172.16.25.130:6443 --token ****** \
--discovery-token-ca-cert-hash ******

确认可用

# 执行此命令会显示client和server版本,能够显示则表示两者均正常
kubectl version # 查看当前kubernetes namespaces
kubectl get ns # 查看当前pods,指定查看namespace为kube-system中的pods
kubectl get pods -n kube-system # 查看当前集群中的nodes
kubectl get nodes # 查看组件状态
# 查看组件状态时scheduler和controller-manager可能显示为unhealthy
# 由于默认这两个pod的非安全端口没有开启,健康检查时报错,但是由于本身服务是正常的,只是健康检查的端口没启,所以不影响正常使用。
# 若启用则修改/etc/kubernetes/manifests/kube-controller-manager.yaml和/etc/kubernetes/manifests/kube-scheduler.yaml中--port=0选项,将此行注释或删除后restart kubelet即可
kubectl get cs

node节点

  1. 安装docker、kubectl、kubelet、kubeadm
  2. 使用命令加入kubernetes集群
kubeadm join 172.16.25.130:6443 --token ****** \
--discovery-token-ca-cert-hash ******

部署flannel


# 安装完成后可通过kubectl get pod -n kube-system查看到flannel已经running
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Kubernetes-3.安装的更多相关文章

  1. Kubernetes 及安装注意事项

    Docker Desktop for Mac/Windows开启Kubernetes 及安装注意事项 Table of Contents 1 解决方案 2 注意事项 2.1 Choose Kubeco ...

  2. [转帖]Kubernetes中安装Helm及使用

    Kubernetes中安装Helm及使用 2018年07月02日 17:41:09 灬勿忘丶心安 阅读数 3699更多 分类专栏: K8S   版权声明:本文为博主原创文章,遵循CC 4.0 BY-S ...

  3. Kubernetes kubeadm 安装记录

    Kubernetes kubeadm 安装记录 注:比较乱,都是一些预见到的错误 kubernetes yum 源 cat /etc/yum.repos.d/kubernetes.repo [kube ...

  4. Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

    背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...

  5. Kubernetes上安装Metrics-Server

    操作场景 metrics-server 可实现 Kubernetes 的 Resource Metrics API(metrics.k8s.io),通过此 API 可以查询 Pod 与 Node 的部 ...

  6. 3.在 Kubernetes 上安装 Gitlab CI Runner

    结合文章:1. 在 Kubernetes 上安装 Gitlab ,地址:https://www.cnblogs.com/sanduzxcvbnm/p/13852854.html 总结: 结合开头的文章 ...

  7. kubernetes centos 安装

    1.  安装       yum install -y  etcd  kubernetes   2.  配置         docker             /etc/sysconfig/doc ...

  8. kubernetes入门(10)kubernetes单机安装后 - helloworld

    前言 查看端口是否被监听了 ::netstat -tlp |grep 31002 我是用的yum install etcd kubernetes docker vim, 这样装的是1.5.2,不是最新 ...

  9. kubernetes的安装方法

    背景 自己学习k8s集群,无奈屌丝一枚,没钱配置vpn服务,安装k8s花费的时间太久了.为了小伙伴们可以快速安装k8s,我花了点时间整理了这篇博客,提供一个不用FQ就可以愉快安装k8s集群的方法. 主 ...

  10. kubernetes的安装

    获取源码 最新安装包下载地址,GitHub下载地址 本次实验的1.10.0的二进制包下载,百度网盘 机器环境 Kubernetes Roles IP地址 Hostname Master 192.168 ...

随机推荐

  1. 【bzoj 3232】圈地游戏(算法效率--01分数规划+图论--最小割)

    题目:DZY家的后院有一块地,由N行M列的方格组成,格子内种的菜有一定的价值,并且每一条单位长度的格线有一定的费用.DZY喜欢在地里散步.他总是从任意一个格点出发,沿着格线行走直到回到出发点,且在行走 ...

  2. 【noi 2.6_4982】踩方格(DP)

    题意:一个无限大的方格矩阵,能向北.东.西三个方向走.问走N步共有多少种不同的方案. 解法: f[i]表示走 i 格的方案数. 状态转移方程推导如下--设l[i],r[i],u[i]分别为第 i 步向 ...

  3. CF1474-C. Array Destruction

    CF1474-C. Array Destruction 题意: 题目给出一个长度为\(2n\)的正整数序列,现在问你是否存在一个\(x\)使得可以不断的进行如下操作,直到这个序列变为空: 从序列中找到 ...

  4. 【cpp上】课后正误小题

    State whether each of the following is true or false. If false, explain why. Assume the state ment u ...

  5. Leetcode(15)-三数之和

    给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复的三元组. ...

  6. 计算机网络 part1 TCP

    一.TCP协议 references:newcoder TCP/IP协议,TCP和UDP的区别及特点 1.四层模型 应用层:载有应用程序,将数据发送给传输层.主要协议有HTTP.SMTP.FTP.DN ...

  7. hdu2333-贪心,如何去后效性,背包太大怎么办,如何最大化最小值,从无序序列中发掘有序性质

    补充一下我理解的中文题意.. 你要重新组装电脑..电脑有一些部件..你的预算有b,b(1~1e9),有n个部件..每个部件有类型和名称以及价钱和质量现在你要在不超过预算b的情况下..每个类型都买一个部 ...

  8. 2021-2-16:请问你知道分布式设计模式中的Quorum思想么?

    有效个数(Quorum) 有效个数(Quorum)这个设计模式一般是指分布式系统的每一次修改都要在大多数实例上通过来确定修改通过. 问题背景 在一个分布式存储系统中,用户请求会发到一个实例上.通常在一 ...

  9. what's the difference amount of pdf, epub, and mobi format

    what's the difference amount of pdf, epub, and Mobi format What is the difference between pdf, epub ...

  10. js & object & prototype & __proto__ & prototype chain

    js & object & prototype & proto & prototype chain constructor prototype === instance ...