K8s-Sit环境安装过程记录

Published on with 113 views

K8s-Sit环境安装过程记录

准备虚拟机(感谢神)

IP主机名角色CPUMemory
192.168.4.140mastermaster8C32G
192.168.4.141worker1node4C8G
192.168.4.142worker2node4C8G
192.168.4.143worker3node4C8G

以上配置是模拟的生产环境配置,使用起来非常充裕,发行版选择的是CentOS7.6;
如果想自己搭建练手,配置可以降低到最低1C 2G,数量可以减到2台;
如果想自己搭建之后当做开发环境或简单部署点东西,根据需求分配即可,建议不要低于2C4G。

配置静态IP

刚装好的CentOS7镜像网络配置是DHCP动态分配的,需要修改为静态。
如果已经配好静态IP,可以跳过这步。

  1. 编辑网络配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33

一般来说,上边的ens33即为默认使用的网卡,如果没有此文件,找到正确的即可。
BOOTPROTO修改为"static",并添加其他配置:

IPADDR="192.168.4.xxx"
GATEWAY="192.168.4.1"
DNS1=8.8.8.8
DNS2=114.114.114.114

这里配置了DNS服务器地址,否则域名解析不到,后续安装包等都会失败。
重启网络服务后,可以执行ping www.baidu.com 进行测试,
也可执行cat /etc/resolv.conf,查看输出结果,下边结果供参考:

# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
  1. 保存编辑,重启网络服务:
systemctl restart network

操作系统配置调优

这里我准备了2个脚本,适用于64位CentOS7.x,按需上传到服务器并执行即可

  • centos7_init_normal.sh:常规环境脚本,调整和优化了一些必要配置
  • centos7_init_k8s.sh:Docker、K8S环境脚本,在常规的基础上,安装了Docker及K8S的必要组件

为了契合生产环境,脚本里修改了ssh端口,如果不想修改,编辑脚本即可。
另外centos7_init_k8s.sh脚本中,安装的kubectl等组件版本为1.16.4,如果需要安装其他版本,也需事先编辑脚本。
执行脚本:

sh centos7_init_k8s.sh xxx # xxx为需要修改的主机名称,如master,worker1等

在所有主机上都执行此步骤,等待执行完成。

使用kubeadm安装Kubenetes集群

  1. 在master上执行初始化命令:
kubeadm init --kubernetes-version=1.16.4 --apiserver-advertise-address=0.0.0.0 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

结束后,记录输出结果,用来使后续新节点加入集群

  1. 执行命令配置kubectl工具:
mkdir -p /root/.kube

sudo cp /etc/kubernetes/admin.conf /root/.kube/config

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

完成后,可使用kubectl命令检测是否成功:

  • 查看核心组件状态(老版本只使用kubectl get cs即可):
[root@master ~]# kubectl get cs -o=go-template='{{printf "|NAME|STATUS|MESSAGE|\n"}}{{range .items}}{{$name := .metadata.name}}{{range .conditions}}{{printf "|%s|%s|%s|\n" $name .status .message}}{{end}}{{end}}'
|NAME|STATUS|MESSAGE|
|scheduler|True|ok|
|controller-manager|True|ok|
|etcd-0|True|{"health":"true"}|
  • 查看Node状态:
[root@master ~]# kubectl get nodes
NAME      STATUS   ROLES    AGE   VERSION
master    NotReady    master   10m   v1.16.4

此时的Master处于"NotReady"(未就绪),因为集群中尚未安装网络插件,部署完网络后会变成Ready

  1. 安装网络组件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

由于网络原因,flannel组件镜像拉取是最慢的,需要耐心等待并观察node状态是否变为Ready。
集群处于Ready状态后,此时node节点可以加入集群中。

  1. 加入node节点:

使用ssh登录到各node主机上,执行之前记录的字符串:

kubeadm join 192.168.4.140:6443 --token xxxxxx
--discovery-token-ca-cert-hash sha256:xxxxxx

加入后可在master上观察node变化,直至全部Ready

下篇:开源容器管理平台Rancher2.x部署与使用


标题:K8s-Sit环境安装过程记录
作者:jenphyjohn
地址:http://blog.join-e.tech/articles/2020/04/15/1586940203934.html

Responses