kubeadm安装k8s集群
安装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集群的更多相关文章
- 使用kubeadm安装k8s集群故障处理三则
最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考 ...
- k8s学习笔记之二:使用kubeadm安装k8s集群
一.集群环境信息及安装前准备 部署前操作(集群内所有主机): .关闭防火墙,关闭selinux(生产环境按需关闭或打开) .同步服务器时间,选择公网ntpd服务器或者自建ntpd服务器 .关闭swap ...
- 使用 --image-repository 解决kubeadm 安装k8s 集群 谷歌镜像墙的问题
从网上我们看到的好多kubeadm 安装k8s 的时候都说需要下拉取镜像,然后修改,实际上 我们可以使用配置参数,快速的跳过墙的问题 说明: 基础镜像,我们仍然存在,拉取的问题,但是dockerhub ...
- centos7下用kubeadm安装k8s集群并使用ipvs做高可用方案
1.准备 1.1系统配置 在安装之前,需要先做如下准备.三台CentOS主机如下: 配置yum源(使用腾讯云的) 替换之前先备份旧配置 mv /etc/yum.repos.d/CentOS-Base. ...
- Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)
背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...
- kubernetes教程第一章-kubeadm高可用安装k8s集群
目录 Kubeadm高可用安装k8s集群 kubeadm高可用安装1.18基本说明 k8s高可用架构解析 kubeadm基本环境配置 kubeadm基本组件安装 kubeadm集群初始化 高可用Mas ...
- Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记
目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...
- CentOS7 使用 kubeadm 搭建 k8s 集群
一 安装Docker-CE 前言 Docker 使用越来越多,安装也很简单,本次记录一下基本的步骤. Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10. Docker ...
- 使用Kubeadm创建k8s集群之部署规划(三十)
前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...
随机推荐
- Spring Boot中如何自定义starter?
Spring Boot starter 我们知道Spring Boot大大简化了项目初始搭建以及开发过程,而这些都是通过Spring Boot提供的starter来完成的.品达通用权限系统就是基于Sp ...
- 大爽Python入门教程 0-2 什么是IDE?python选什么IDE好?
大爽Python入门公开课教案 点击查看教程总目录 一 感受IDE 什么是IDE? 在这里,我并不想直接给出一个回答, 因为这个回答对初学者来说,可能有些抽象. 我想先带大家感受下IDE. 1 比较不 ...
- [gym102798F]Skeleton Dynamization
考虑对于第$i$层$x$与第$i+1$层所对应的点$y$,点$p$在前$i$层中当且仅当$p$到$x$比$p$到$y$距离小 由此,考虑枚举第一层的一个点以及对应到第二层的边,通过bfs就可以确定第一 ...
- 测试平台系列(80) 封装Redis客户端
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们编写了Redis ...
- WinRAR下载
https://www.win-rar.com 垃圾7Z有的解压不了.
- 图片处理看这篇就完了「GitHub 热点速览 v.21.48」
作者:HelloGitHub-小鱼干 图像处理一直是个实用且热门的研究领域,而本周的 GitHub 项目则多个图像项目上榜.先是勉强和图像处理搭边的渲染引擎 Filament,它能渲染出效果极佳的 3 ...
- ss 显示socket状态
ss ===show socket用于显示socket状态 所有的TCP sockets 所有的UDP sockets 所有ssh/ftp/ttp/https持久连接 所有连接到Xserver的本地进 ...
- python-django-ORM模型
ORM模型: Object Relational Mapping 对象关系映射 配置引擎的时候最好直接复制: DATABASES = { 'default': { 'ENGINE': 'django. ...
- Atom编辑器速查
简介 Atom 是 Github 开源的文本编辑器,相当于半个IDE.其特点如下: (1)免费开源,多平台支持(Windows.Mac.Linux): (2)界面美观.现代化,使用舒适: (3)多文件 ...
- linux—查看所有的账号以及管理账号
用过Linux系统的人都知道,Linux系统查看用户不是会Windows那样,鼠标右键看我的电脑属性,然后看计算机用户和组即可. 那么Linux操作系统里查看所有用户该怎么办呢?用命令.其实用命令就能 ...