安装kubeadm kubectl kubelet

对于Ubuntu/debian系统,添加阿里云k8s仓库key,非root用户需要加sudo

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

然后在/etc/apt/source.list末尾加一行

deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

然后更新apt列表,安装kubeadm和kubectl

apt-get update
apt-get install -y kubelet kubeadm kubectl

对于CentOS/RHEL/Fedora

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
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用 yum install -y --nogpgcheck kubelet kubeadm kubectl 安装

初始化集群

sudo  kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=cri --control-plane-endpoint "192.168.1.13:6443"  --kubernetes-version=1.18.3
image-repository是镜像仓库地址,默认是谷歌的,国内无法访问,所以改为阿里云的
pod-network-cidr是pod的子网网段设置
control-plane-endpoint是控制层的入口,所以是填主节点的ip+指定一个端口,后续有其他机器加入集群就是从这里访问的
重要:kubernetes-version是k8s的版本,这个需要和上一步安装的kubeadm版本一致, kubeadm version可以查看到版本号

然后等几分钟初始化完毕就会提示下一步操作。
拷贝admin.conf到.kube,重命名为config
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

这里还可以看到其他节点加入集群的命令,即有kubeadm join那两行,加入控制层(master或者叫controller)多了个--control-plane参数,加入工作节点(worker)则没有。k8s的高可用集群一般建议至少3个主节点(ps:我的机器少,只有一个主节点,一个worker节点)

安装pod网络

下载flannel.yml到所在目录,安装flannel

kubectl apply -f flannel.yml

加入其他节点

拷贝证书

先在要加入的节点的用户目录下新建~/pki/etcd目录

mkdir -p ~/pki/etcd

然后在刚才安装k8s的主节点通过scp把证书都拷贝过去

cd /etc/kubernetes/pki
sudo scp sa.key sa.pub front-proxy-ca.crt front-proxy-ca.key myuser@192.168.1.113:~/pki/
cd etcd
sudo scp ca.crt ca.key myuser@192.168.1.113:~/pki/etcd

再切回要加入的节点,执行本文一开始安装kubeadm的步骤

然后把证书移动到/etc/kubernetes/pki下

sudo mv -f ~/pki/* /etc/kubernetes/pki/

最后加入集群即可,这行命令可以在主节点的集群初始化最后找到,每个集群的都不一样,需要自己去拷贝自己生成的那个

sudo kubeadm join 192.168.1.13:6443 --token fd1j75.qxrwb8h1dbogasb7 --discovery-token-ca-cert-hash sha256:4f2f2a8900ff54575406f443e49ec78d1658e437f3e1dd2785c6fbd05bcbf786 --control-plane

最后也会有提示让把admin.conf拷贝到.kube,修改所有者,照做就是

如果token过期,可以在主节点执行 kubeadm token create 以生成新的token,有效期两小时

安装桌面客户端

最后安利一个很不错的k8s集群客户端应用lens,点击选择对应版本下载,打开就可以用了。

打开,点击+号,选择自定义,然后把主节点的~/.kube/config文件内容拷贝这里就能连接上了

安装监控系统前需要将主节点设置污点容忍(taint),master节点默认是有设置污点的,不能将pod分配到污点节点,只有设置了污点容忍监控系统的pod才能安装到主节点,当然,有worker够的话也不用

以下命令就是去除主节点的污点。

sudo kubectl taint nodes --all node-role.kubernetes.io/master-

安装监控系统,集群图标,点击右键设置。拉到最下边的Features,Metrics,点击安装,集群就会自动安装普罗米修斯了

kubeadm安装k8s集群的更多相关文章

  1. 使用kubeadm安装k8s集群故障处理三则

    最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考 ...

  2. k8s学习笔记之二:使用kubeadm安装k8s集群

    一.集群环境信息及安装前准备 部署前操作(集群内所有主机): .关闭防火墙,关闭selinux(生产环境按需关闭或打开) .同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器 .关闭swap ...

  3. 使用 --image-repository 解决kubeadm 安装k8s 集群 谷歌镜像墙的问题

    从网上我们看到的好多kubeadm 安装k8s 的时候都说需要下拉取镜像,然后修改,实际上 我们可以使用配置参数,快速的跳过墙的问题 说明: 基础镜像,我们仍然存在,拉取的问题,但是dockerhub ...

  4. centos7下用kubeadm安装k8s集群并使用ipvs做高可用方案

    1.准备 1.1系统配置 在安装之前,需要先做如下准备.三台CentOS主机如下: 配置yum源(使用腾讯云的) 替换之前先备份旧配置 mv /etc/yum.repos.d/CentOS-Base. ...

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

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

  6. kubernetes教程第一章-kubeadm高可用安装k8s集群

    目录 Kubeadm高可用安装k8s集群 kubeadm高可用安装1.18基本说明 k8s高可用架构解析 kubeadm基本环境配置 kubeadm基本组件安装 kubeadm集群初始化 高可用Mas ...

  7. Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记

    目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...

  8. CentOS7 使用 kubeadm 搭建 k8s 集群

    一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker ...

  9. 使用Kubeadm创建k8s集群之部署规划(三十)

    前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...

随机推荐

  1. 菜鸡的Java笔记 - java 多对多映射

    要求:    1.将数据还原为简单java类    2.数据的输出:        可以根据一个用户输出它对应的角色以及每个角色对应的权限,以及包含的具体的权限详情:        一个权限可以输出具 ...

  2. <C#任务导引教程>练习三

    /*Convert.ToInt("213165");int a=12345;string sn=a.ToString();//把a转换成字符串snint b=int.Parse(s ...

  3. [atARC116F]Deque Game

    假设两个操作者分别为$A$和$B$,其中$A$希望最大.$B$希望最小 (并不默认$A$为整局游戏的先手,仅是最终的结果考虑$A$为先手时) 记第$i$个队列第$j$个元素为$a_{i,j}$(其中$ ...

  4. [gym103055H]Grammy and HearthStone

    题目即要求构造一个长为$2n$的序列$a_{i}$,满足$\forall 1\le i\le n$,$i$恰好出现两次,假设分别是$a_{x}=a_{y}=i(x<y)$,即要求$y-x=i$ ...

  5. AOP声明式事务

    1.spring-dao.xml修改 参考上面工程配置 <?xml version="1.0" encoding="UTF-8"?> <bea ...

  6. 在安卓开发中需要格式化桌面icon图标

    使用以下在线工具即可实现http://www.makeicon.cc/home/index

  7. Electron跨平台程序破解

    1.  npm install asar -g 2. asar --version 如果有版本号就继续 3.找到需要解压的软件位置  在app.asar的地址输入 asar e app.asar tm ...

  8. 多线程05.thread不知道的知识

    Thread thread = new Thread(); // init(null, null, "Thread-" + nextThreadNum(), 0); //init( ...

  9. Python+selenium之多窗口,句柄

  10. CF1463E Plan of Lectures

    考虑我们两种操作: 我们把第一种操作在\(x\to y\)连一条权为-1的边. 第二种操作\(x\to y\)连-1,\(y\to x\)连1的边. 当无法操作则是环里有负环. 否则我们把第二种操作涉 ...