K8S v1.13.0 集群搭建

环境

两台centos主机:

Master:192.168.11.112 主机名:k8s-master

Node:192.168.11.111 主机名:k8s-node

编辑每台机子的/etc/hosts文件加入master、Node主机名与IP地址,确保两台主机能互相ping通

修改系统源:

wget  -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

系统更新

yum update

关闭防火墙

systemctl stop firewalld & systemctl disable firewalld

关闭swap:

sed -i '/ swap / s/^/#/' /etc/fstab

关闭selinux:

setenforce 0 && sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g"   /etc/selinux/config

同步时钟

编辑/etc/ntp.conf添加下列字段:

server 10.17.87.8 prefer

创建/etc/sysctl.d/k8s.conf文件,添加如下内容:

net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1

执行命令使修改生效:

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.con

k8s安装

2.1 安装docker

执行安装命令:

yum install docker-ce -y

查看版本:

docker --version

设置开机启动:

systemctl start docker & systemctl enable docker

验证docker安装:

docker run hello-world

如下显示则成功安装docker:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mawWdABW-1584506197826)(/clip_image002.jpg)]

2.2 安装k8sv1.130

添加阿里源的仓库,编辑/etc/yum.repos.d/kubernetes.repo添加以下内容:

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

​ http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

安装kubelet:

yum install -y kubelet-1.13.0-0.x86_64

安装kubeadm、kubectl:

yum install -y kubeadm-1.13.0-0.x86_64 kubectl-1.13.0-0.x86_64

确保docker 的cgroup drive 和kubelet的cgroup drive一样:

docker info | grep -i cgroup
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gPkKoiOf-1584506197827)(/clip_image004.jpg)])

若kubeadm中没有,则添加如下:

Environment="KUBELET_CGROUP_ARGS=–cgroup-driver=cgroupfs

启动kubelet:

systemctl enable kubelet && systemctl start kubelet

下载依赖包:

执行下列命令

docker pull ww3122000/kube-apiserver:v1.13.0docker pull ww3122000/kube-controller-manager:v1.13.0docker pull ww3122000/kube-scheduler:v1.13.0docker pull ww3122000/kube-proxy:v1.13.0docker pull ww3122000/pause:3.1docker pull ww3122000/etcd:3.2.24docker pull ww3122000/coredns:1.2.6 docker tag ww3122000/kube-apiserver:v1.13.0 k8s.gcr.io/kube-apiserver:v1.13.0docker tag ww3122000/kube-controller-manager:v1.13.0 k8s.gcr.io/kube-controller-manager:v1.13.0docker tag ww3122000/kube-scheduler:v1.13.0 k8s.gcr.io/kube-scheduler:v1.13.0docker tag ww3122000/kube-proxy:v1.13.0 k8s.gcr.io/kube-proxy:v1.13.0docker tag ww3122000/pause:3.1 k8s.gcr.io/pause:3.1docker tag ww3122000/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24docker tag ww3122000/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6

查看docker镜像库:

docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADQtAOrM-1584506197827)(/clip_image006.jpg)]

编辑/etc/sysconfig/kubelet加入:

KUBELET_EXTRA_ARGS=–fail-swap-on=false

2.3 初始化集群

执行初始化命令:

kubeadm init --kubernetes-version=v1.13.0 --pod-network-cidr=10.244.0.0/16  --apiserver-advertise-address=192.168.11.112

含义:

1.选项–pod-network-cidr=10.244.0.0/1选择flannel作为Pod网络插件

2.选项–kubernetes-version=v1.13.0指定K8S版本,这里必须与之前导入到Docker镜像版本v1.13.0一致,否则会访问谷歌去重新下载K8S最新版的Docker镜像

3.选项–apiserver-advertise-address表示绑定的网卡IP,这里一定要绑定前面提到的enp0s8网卡,否则会默认使用enp0s3网卡

4.若执行kubeadm init出错或强制终止,则再需要执行该命令时,需要先执行kubeadm reset重置

返回一下内容则初始化成功,每个人的返回内容不同,下列内容需保存,后面会用:

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown (id−u):(id -u):(id−u):(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.

Run “kubectl apply -f [podnetwork].yaml” with one of the options listed at:

https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node

as root:

kubeadm join 192.168.11.112:6443 --token hbpvny.5dprmhgqhbrxx6qc --discovery-token-ca-cert-hash sha256:8ea082913deeda1221efaecb14fdd3cf61a8fcccfda6bcee91c02fd2665fcaa1

其中kubeadm join 192.168.11.112:6443 --token hbpvny.5dprmhgqhbrxx6qc --discovery-token-ca-cert-hash sha256:8ea082913deeda1221efaecb14fdd3cf61a8fcccfda6bcee91c02fd2665fcaa1是在子节点中执行,使得node加入集群中。

初始化成功后执行正面的命令复制配置文件到 root 用户和普通用户的 home 目录下,以便连上集群使用,执行上面提示中的三行语句:

mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

查看集群状态:

Kubectl get cs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L76TkdVw-1584506197827)(/clip_image008.jpg)]

2.4 安装pod network

接下来安装flannel network add-on:

mkdir -p ~/k8s/cd ~/k8swget <https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml>kubectl apply -f  kube-flannel.yml

使用kubectl get pod -n kube-syste确保所有的Pod都处于Running状态:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bx8XUNOG-1584506197828)(/clip_image010.jpg)]

查看节点:

Kubectl get nodes

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bBz30vs3-1584506197828)(/clip_image012.jpg)]

如上,若提示notReady则表示节点尚未准备好,可能正在进行其他初始化操作,等待全部变为Ready即可。

2.5 安装可视化管理dashboard

拉取dashboard镜像:

docker pull gcrxio/kubernetes-dashboard-amd64:v1.10.1docker tag gcrxio/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

编辑dashboard.yaml添加:

kind: ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1beta1

metadata:

name: admin

annotations: rbac.authorization.kubernetes.io/autoupdate: “true”

roleRef:

​ kind: ClusterRole

​ name: cluster-admin

​ apiGroup: rbac.authorization.k8s.io

subjects:

- kind: ServiceAccount

name: admin

namespace: kube-system

apiVersion: v1

kind: ServiceAccount

metadata:

name: admin

namespace: kube-system

labels:

​ kubernetes.io/cluster-service: “true”

​ addonmanager.kubernetes.io/mode: Reconcile

执行下列命令:

wget <https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.0/src/deploy/recommended/kubernetes-dashboard.yaml> sed -i 's#k8s.gcr.io#gcrxio#g' kubernetes-dashboard.yaml

编辑kubernetes-dashboard.yaml在service处做如图修改:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RDha27KL-1584506197828)(/clip_image014.jpg)]

执行部署命令:

kubectl apply -f kubernetes-dashboard.yaml

用火狐访问: https://{MasterIP}:30001

**dashboard ** 用户界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZwTydAc0-1584506197829)(/clip_image016.jpg)]

创建kubernetes-dashboard-admin.rbac.yaml文件,文件内容如下:

apiVersion: v1

kind: ServiceAccount

metadata:

labels:

​ k8s-app: kubernetes-dashboard

name: kubernetes-dashboard-admin

namespace: kube-system

apiVersion: rbac.authorization.k8s.io/v1beta1

kind: ClusterRoleBinding

metadata:

name: kubernetes-dashboard-admin

labels:

​ k8s-app: kubernetes-dashboard

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: cluster-admin

subjects:

- kind: ServiceAccount

name: kubernetes-dashboard-admin

namespace: kube-system

执行命令:

kubectl create kubernetes-dashboard-admin.rbac.yamlkubectl get secret -n kube-system | grep admin kubectl describe secret 文件名-n kube-system

保存token

利用令牌登录用户界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-biG0f59v-1584506197829)(/clip_image018.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ILbIV5rt-1584506197829)(/clip_image020.jpg)]

k8s双节点集群搭建详细教程相关推荐

  1. 【❤️万字长文总结❤️】一篇学会Redis高可用✔集群✔搭建详细教程

    大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发.网络安全渗透.Windows域控Exchange架构 今日重点:今天总结一下Redis集群高可用的搭建流程 [惊喜推荐+优质资源 ...

  2. RabbitMQ双节点集群搭建

    一 实验环境 二 安装步骤 2.1 安装单实例RabbitMQ 可参考:安装rabbitmq 3.7.6_雅冰石的专栏-CSDN博客 2.2 修改两台服务器的/etc/hosts文件 添加: 192. ...

  3. 二进制安装部署 4 kubernetes集群---超详细教程

    二进制安装部署kubernetes集群---超详细教程 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建完成后整理的个人心得,分享给大家~~~ 本文所需的安装包,都上传在我的网盘中,需要的可以 ...

  4. linux下,redis 3.2.1双节点集群安装部署

    为什么80%的码农都做不了架构师?>>>    一.环境准备 1.JDK环境准备,需卸载掉自带JDK (1)检查服务器是否自带jdk环境 [root@redis1 /]# rpm - ...

  5. Hadoop 2.0集群配置详细教程

    Hadoop 2.0集群配置详细教程 前言 Hadoop2.0介绍 Hadoop是 apache 的开源 项目,开发的主要目的是为了构建可靠,可拓展 scalable ,分布式的系 统, hadoop ...

  6. 【VMware vSAN 7.0】6.6 使用快速入门功能配置延伸集群或双节点集群—我们有软硬件解决方案

    目录 1. vSAN简介 1.1 vSAN 概念 1.1.1 vSAN 的特性 1.2 vSAN术语和定义 1.3 vSAN 和传统存储 1.4 构建 vSAN 群集 1.5 vSAN 部署选项 1. ...

  7. flume多节点集群搭建

    概览 1.Flume流程简介 2.规划 3.配置 4.启动测试 5.注意 准备 操作系统:CentOS 7 搭建好hadoop集群 Flume版本:1.8.0 jdk版本:1.8.0_141 工具:X ...

  8. 【VMware vSAN 7.0】6.13 将双节点集群分配给共享见证主机—我们有软硬件解决方案

    目录 1. vSAN简介 1.1 vSAN 概念 1.1.1 vSAN 的特性 1.2 vSAN术语和定义 1.3 vSAN 和传统存储 1.4 构建 vSAN 群集 1.5 vSAN 部署选项 1. ...

  9. 手把手从零开始搭建k8s集群超详细教程

    本教程根据B站课程云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps同步所做笔记教程 k8s集群搭建超详细教程 1. 基本环境搭建 1. 创建私有网络 2. 创建服务 ...

最新文章

  1. .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
  2. 在存储过程中如何使用另一个存储过程返回的结果集
  3. 惨一个字!Windows 10 October 2018 Update市占率太低
  4. python安装mysql数据库_windows10安装mysql-8.0.13(zip安装)~Python安装mysql
  5. P3166-[CQOI2014]数三角形【GCD】
  6. LeetCode 317. 离建筑物最近的距离(逆向BFS)*
  7. 【Unity开源项目精选】Unity引擎源码的C#部分
  8. pythonista3安卓_pythonista 3ios
  9. Tips for vcpkg
  10. 下载EPM包详细运行日志
  11. WPFの三种方式实现快捷键
  12. python分页查询_python | MySQL分页查询优化
  13. 杰理之ANC降噪三种类型【篇】
  14. 设计模式:个人理解关于代理和委托模式的一点区别
  15. 通用评估神经网络鲁棒性方法—CLEVER
  16. 基于Java SpringBoot的电影院管理系统设计与实现毕业设计源码011633
  17. 【css】css实现图片或动图边缘模糊化处理(附示例代码)
  18. burpsuit无法成功代理之导入证书
  19. 双频段AP wps同时开启并通过智能手机、windows端连接问题
  20. 201609-2 python CCF 更简单的思路和代码 100分

热门文章

  1. Element-UI实现对话框内播放视频
  2. 百度搜索URL参数你知道多少
  3. Elasticsearch——Settings设置
  4. xlwt 合并单元格内 富文本 同一单元格内多个样式
  5. 量子计算 8 量子纠缠
  6. 艾永亮:为什么国内品牌很难在市场中生存下去
  7. 数字图像matlab边缘检测(一)
  8. 聚观早报 | 恒大汽车或将被并购;比亚迪今年将进入丹麦市场
  9. 990php,音频牛绝配 DIY音频专用分立运放OP990初测
  10. ping回显无法访问目的主机问题解决过程