1. Kubeadm简介

kubeadm是k8s官方提供的,用于新入门人员快速部署一套kubernetes集群的一种简单的方法

点击进入官方文档链接

2. 本次操作的机器配置

  • 两台1核2G的阿里云

    • centos 7.6
    • 内网互通

配置远低于官方的要求,但是用于学习用途足矣

3. 部署步骤

  • 以下不做特殊说明默认所有机子都执行

3.1 准备工作

# 更新系统和软件包
yum update # 设置主机名(master node 名字分开)
hostnamectl set-hostname k8s-master # 同步时间
systemctl restart chronyd # 添加host
# 以下ip是两台机子的内网ip
cat >> /etc/hosts <<EOF
172.19.227.80 k8s-master
172.19.138.68 k8s-node01
EOF # 设置两台机子间无密码访问
ssh-keygen -t rsa
ssh-copy-id root@k8s-master
ssh-copy-id root@k8s-node01 # 关闭防火墙和iptables
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl stop iptables.service
systemctl disable iptables.service # 关闭SELinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # 关闭swap
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3.2 安装docker

# master执行以下转到repo目录
cd /etc/yum.repos.d/ # master执行下载docker阿里云镜像
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # master同步到其他服务器
scp docker-ce.repo k8s-node01:/etc/yum.repos.d/ # 安装docker(各个都要装)
yum -y install docker-ce # 修改配置
nano /usr/lib/systemd/system/docker.service # master增加一行如下
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT # 配置阿里云镜像加速
sudo mkdir -p /etc/docker # 注意这里的链接要换成自己账号的镜像加速
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF # 重启docker
systemctl daemon-reload
systemctl start docker
systemctl enable docker
systemctl restart docker

3.3 安装kubeadm, kubectl, kubelet

# master执行以下
cd /etc/yum.repos.d/
nano kubernetes.repo # 添加如下内容
[kubernetes]
name=Kubernetes Repository
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg # master检查仓库
yum repolist
yum list all | grep "^kube" # master执行安装
yum install kubeadm kubelet kubectl -y # 检查安装
rpm -ql kubectl
rpm -ql kubeadm # master上把仓库拷贝过去
cd /etc/yum.repos.d/
scp kubernetes.repo k8s-node01:/etc/yum.repos.d/ # 所有node安装kubelet kubeadm
yum install kubelet kubeadm -y # master和node执行以下
systemctl enable kubelet.service # master查看所需的镜像
kubeadm config images list # 所有机器都执行以下的拉取镜像的操作
# 由于kubeadm依赖国外的k8s.gcr.io的镜像,国内被墙所以这边的解决方案是下载国内的镜像重新打tag的方式
docker pull lzw5399/kube-proxy:v1.18.3
docker pull lzw5399/kube-apiserver:v1.18.3
docker pull lzw5399/kube-controller-manager:v1.18.3
docker pull lzw5399/kube-scheduler:v1.18.3
docker pull lzw5399/coredns:1.6.7
docker pull lzw5399/etcd:3.4.3-0
docker pull lzw5399/pause:3.2 # 修改tag
docker tag lzw5399/kube-proxy:v1.18.3 k8s.gcr.io/kube-proxy:v1.18.3
docker tag lzw5399/kube-apiserver:v1.18.3 k8s.gcr.io/kube-apiserver:v1.18.3
docker tag lzw5399/kube-controller-manager:v1.18.3 k8s.gcr.io/kube-controller-manager:v1.18.3
docker tag lzw5399/kube-scheduler:v1.18.3 k8s.gcr.io/kube-scheduler:v1.18.3
docker tag lzw5399/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7
docker tag lzw5399/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
docker tag lzw5399/pause:3.2 k8s.gcr.io/pause:3.2 # 移除没用的镜像
docker rmi lzw5399/kube-proxy:v1.18.3
docker rmi lzw5399/kube-apiserver:v1.18.3
docker rmi lzw5399/kube-controller-manager:v1.18.3
docker rmi lzw5399/kube-scheduler:v1.18.3
docker rmi lzw5399/coredns:1.6.7
docker rmi lzw5399/etcd:3.4.3-0
docker rmi lzw5399/pause:3.2

3.4 master初始化kubeadm

# master执行init初始化
kubeadm init \
--kubernetes-version="v1.18.3" \
--pod-network-cidr="10.244.0.0/16" \
--ignore-preflight-errors="NumCPU" # 后续步骤
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config # 应用网络插件flannle
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

3.5 node加入集群

# 加入集群
# 这里具体的语句在master上init成功后就会通过log打印出来,直接复制到node上用就好了
kubeadm join 172.19.227.80:6443 --token vdyayi.ghs1zut7yxd94vru \
--discovery-token-ca-cert-hash sha256:fcdaaaf7411b786e3d5bb77c1d190e278a2952e1f415012cfdeea31c0af7547b \
--v=4

3.6 查看部署状态

# master查看node节点状态
kubectl get nodes # master查看kube-system命名空间下的pod启动的状态
kubectl get po -n kube-system # 如果有pod一直启动不起来,通过describe查看状态
kubectl describe po/{具体的pod名字} -n kube-system

Kubernetes系列(三) - 通过Kubeadm部署kubernetes的更多相关文章

  1. 使用kubernetes 官网工具kubeadm部署kubernetes(使用阿里云镜像)

    系列目录 kubernetes简介 Kubernetes节点架构图: kubernetes组件架构图: 准备基础环境 我们将使用kubeadm部署3个节点的 Kubernetes Cluster,整体 ...

  2. Kubernetes系列三:二进制安装Kubernetes环境

    安装环境: # 三个节点信息 192.168.31.11 主机名:env11 角色:部署Master节点/Node节点/ETCD节点 192.168.31.12 主机名:env12 角色:部署Node ...

  3. [原]使用kubeadm部署kubernetes(一)

    #######################    以下为声明  ##################### 在公众号  木子李的菜田 输入关键词:   k8s 有系列安装文档 此文档是之前做笔记在 ...

  4. 02 . Kubeadm部署Kubernetes及简单应用

    kubeadm部署Kubernetes kubeadm简介 # kubeadm是一位高中生的作品,他叫Lucas Kaldstrom,芬兰人,17岁用业余时间完成的一个社区项目: # kubeadm的 ...

  5. 附025.kubeadm部署Kubernetes更新证书

    一 查看证书 1.1 查看过期时间-方式一 1 [root@master01 ~]# tree /etc/kubernetes/pki/ 2 [root@master01 ~]# for tls in ...

  6. Kubeadm部署Kubernetes

    Kubeadm部署Kubernetes 1.环境准备 主机名 IP 说明 宿主机系统 k8s-master 10.0.0.101 Kubernetes集群的master节点 Ubuntu2004 k8 ...

  7. 使用kubeadm部署Kubernetes v1.13.3

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: 1. 安装要求 在开始之前,部署Kubernetes集群 ...

  8. [转帖]CentOS 7 使用kubeadm 部署 Kubernetes

    CentOS 7 使用kubeadm 部署 Kubernetes   关闭swap 执行swapoff临时关闭swap. 重启后会失效,若要永久关闭,可以编辑/etc/fstab文件,将其中swap分 ...

  9. 从0到1使用Kubernetes系列(五):Kubernetes Scheduling

    前述文章介绍了Kubernetes基本介绍,搭建Kubernetes集群所需要的工具,如何安装,如何搭建应用.本篇介绍怎么使用Kubernetes进行资源调度. Kubernetes作为一个容器编排调 ...

  10. scrapy爬虫学习系列三:scrapy部署到scrapyhub上

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

随机推荐

  1. 在 Kubernetes 中基于 StatefulSet 部署 MySQL(上)

    大家好,我是老 Z! 本文实现了 MySQL 数据库在基于 KubeSphere 部署的 K8s 集群上的安装部署,部署方式采用了图形化这种形式.下一篇文章将会涉及 GitOps 的基础操作,部署过程 ...

  2. 为什么样本方差是除以 n-1 而不是 n?

    摘自https://www.zhihu.com/question/20099757/answer/13971886 https://www.zhihu.com/question/20099757/an ...

  3. KubeSphere 最佳实战:Kubernetes 部署集群模式 Nacos 实战指南

    Nacos 是 Dynamic Naming and Configuration Service 的首字母简称,一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 是构建以服 ...

  4. Saas多租户数据权限设计(参考RuoYi)

    导航 引子 场景梳理 基于角色的访问控制(RBAC) 多租户系统的权限设计 RuoYi系统的数据权限设计 最终设计方案 参考 本文首发<智客工坊-Saas多租户数据权限设计(参考RuoYi)&g ...

  5. [Go] 如何妥善处理 TCP 代理中连接的关闭

    如何妥善处理 TCP 代理中连接的关闭 相比较于直接关闭 TCP 连接,只关闭 TCP 连接读写使用单工连接的场景较少,但通用的 TCP 代理也需要考虑这部分场景. 背景 今天在看老代码的时候,发现一 ...

  6. 哈希(C语言)

    文章目录 1.数据结构--哈希表 1.1哈希表的工作原理 1.2哈希表的代码实现 2.哈希算法 2.1 哈希算法介绍 2.2C语言实现示例 本文介绍一个常用的算法--哈希算法,哈希算法依赖于哈希表来实 ...

  7. 蚂蚁图团队GraphRAG支持社区摘要——Token相比微软直降50%

    今年5月份,我们在DB-GPT v0.5.6版本发布了蚂蚁首个开源GraphRAG框架,支持了多种知识库索引底座,并在文章<Vector | Graph:蚂蚁首个开源GraphRAG框架设计解读 ...

  8. 每日学学Java开发规范,编程规约(附阿里巴巴Java开发手册(终极版))

    前言 每次去不同的公司,码不同的代码,适应不同的规范,经常被老大教育规范问题,我都有点走火入魔的感觉,还是要去看看阿里巴巴Java开发规范,从中熟悉一下,纠正自己,码出高效,码出质量. 想细看的可以去 ...

  9. Python一些常见的技巧及语句!!

    题记:关于遇到的一些python代码或者不清楚用法的函数.类别等我会在这里记录下来,方便日后学习和交流.之后研究生三年我会持续更新学习,可能得记录几千个吧. 1. copy.copy()和copy.d ...

  10. PWN(栈溢出漏洞)-原创小白超详细[Jarvis-level0]

    ​ 题目来源:Jarvis OJ https://www.jarvisoj.com/challenges 题目名称:Level0 题目介绍: 属于栈溢出中的ret2text 意思是Return to ...