同创永益
作者同创永益2021-04-30 17:02
其它, 同创永益

Kubernetes基于Centos7构建基础环境(三)

字数 3435阅读 299评论 0赞 0

【前言】本文介绍了Kubernetes基于Centos7构建基础环境,作者:姜新灿 (同创永益架构总监)。

环境准备

准备三台虚拟机,每台虚机请参照Kubernetes基于Centos7构建基础环境(一)、Kubernetes基于Centos7构建基础环境(二)进行安装构建

一、 三台虚拟机配置表

  1. 服务器配置

  1. 工具版本

docker version: v19.03.11

Kubernetes version: v1.18.2

参考地址kubernetes监控中级方案: kubernetes监控终极方案-kube-promethues - skyflask - 博客园

二、 修改虚机域名

依次修改各个虚拟机域名为master55.xincan.cn、 slave56.xincan.cn、 slave57.xincan.cn

三、 配置三台机器互相用域名、别名访问

修改/etc/hosts文件设置,3台服务器同时增加如下代码

192.168.1.55 master55.xincan.cn master55

192.168.1.56 slave56.xincan.cn slave56

192.168.1.57 slave57.xincan.cn slave57

四、 重启三台虚拟机,执行reboot

分别链接3台服务器,由之前的localhost已经改成服务器别名

五、 三台服务器时间同步

  1. 3台服务器都安装ntp,提示 Complete! 则安装成功

  1. 3台服务器同时设置,查看当前系统时间、并设置当前时间为上海

  1. master55配置 server ntp.aliyun.com iburst ,然后通过 sudo systemctl start ntpd 启动服

务,稍等一会执行 ntpq -p 查看是否同步,如果出现前面的*则,同步成功

systemctl start ntpd 启动ntp

systemctl restart ntpd 重启ntp

systemctl enable ntpd.service 开机启动

ntpdc -c loopinfo 查看与时间同步服务器的时间差

  1. slave56、slave57配置master55域名地址 server master55.xincan.cn iburst ,然后通过 sudo

systemctl start ntpd 启动服务,稍等一会执行 ntpq -p 查看是否同步,如果出现前面的*则,同步成功

slave56设置

slave57设置

六、 三台服务器同时配置kubernetes网桥

设置网桥为值为1

  1. master55设置

  1. slave56设置

  1. slave57设置

七、 三台服务器同时配置kubernetes下载源,关闭SELinux

  1. master55设置

  1. slave56设置

  1. slave57设置

八、 查看三台服务器下载源列表,如下成功

九、 三台服务器设置免密登录

1:manager节点执行:ssh-keygen -t rsa 一路回车到结束,在/root/.ssh/下面会生成一个公钥文件id_rsa.pub

  1. 将公钥追加到authorized_keys

  1. 修改authorized_keys权限:

  1. 将~/.ssh从master55节点分发到slave56、slave57节点,执行:scp -r ~/.ssh/ root@slave56:~/.ssh/ scp -r ~/.ssh/ root@slave57:~/.ssh/ 过程中需要填写yes,然后提示输入slave56、slave57两个节点的登录密码

  1. 验证master55、slave56、slave57三个节点免密登录

master55节点验证

slave56节点验证,第一次链接需要输入目标服务密码,后续则不用

slave57节点验证,第一次链接需要输入目标服务密码,后续则不用

十、 三台服务器同时安装kubelet kubeadm kubectl

安装完成之后,启动,并设置开机启动

十一、以master55为Kubernetes主节点进行Kubernetes初始化

  1. 执行命令进行初始化

sudo kubeadm init −−image-repository registry.aliyuncs.com/google_containers − −kubernetes-version v1.18.2 −−apiserver-advertise-address 192.168.1.55 −−pod-network−cidr=10.244.0.0/16 −−token-ttl 0

  1. 根据初始化提示,在master55节点上执行如下命令

mkdir -p $HOME/.kube

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

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

  1. 根据初始化提示,在slave56、slave57节点上分别执行如下命令

kubeadm join 192.168.1.55:6443 −−token 991hr9.scqkkyphn1cjjcl7 −−discovery-token-ca

cert-hash

sha256:1dcf2607e09f83160ce9bc99a941d9a6bd74e99b6b8d3adb63af800ffee19baf

十二、Kubernetes命令自动补全(墙裂建议)

十三、k8s查看所有节点

master55节点查看所有节点,当前三台服务器的状态都是NotReady

十四、k8s查看所有命名空间下所有pod

发现coredns一直处在pending状态,需要安装k8s网络插件

十五、k8s安装网络插件

我们这里选取calico网络插件(提供企业级支持)

  1. 在master55节点上创建文件夹,用于存放下载的网络插件,我这里下载的是calico-3.13.1.yaml

  1. 安装calico-3.13.1.yaml

十六、再次查看node和pod

需要等待一会时间

  1. 查看nodes,发现状态已经为Ready

  1. 查看pods,发现状态都为Running

十七、安装git

十八、kube-promethues部署

  1. 下载安装源码,切换到上述创建的k8s目录下,进行git clone https://github.com/coreos/kube-prometheus.git拉取

  2. 安装文件都在kube-prometheus/manifests/ 目录下,切换到此目录

  1. 官方把所有文件都放在一起,这里我复制了然后分类下,切换到k8s目录下进行操作

  1. 将kube-prometheus/manifests/setup下的文件都复制到/prometheus/operator/下

  1. 将prometheus/operator/下0namespace-namespace.yaml文件移动到/k8s/prometheus/下

  1. 切换到prometheus/目录下,进行文件归置

  1. 注意:新版本的默认label变了,需要修改选择器为beta.kubernetes.io/os,不然安装的时候会卡住,修改选择器

  1. 注意:镜像使用dockerhub上的

  1. 生成namespace

  1. 安装operater

  1. 依次安装其他组件

  1. 查看整体状态

  1. k8s查看所有svc

  1. k8s暴露grafana外网访问端口

修改type: ClusterIP为 type: NodePort ,默认外网端口NodePort对应的是31533,找到如下代码

  1. 最终效果图(部分效果图)

十九、 安装kubernetes-dashboard

下载dashboard所需资源

git clone https://github.com/xincan/kubernetes.git

二十、 Token令牌登录

二十、 KubeConfig登录

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

容器云管理平台选型优先顺序调查

发表您的选型观点,参与即得50金币。