公司有三台空闲服务器,用来搭建一个K8S环境
IP地址分别为 3台HP G9服务器均已重装系统为Centos 7.9 版本,IP地址及权限信息如下:
192.168.150.15
192.168.150.16
192.168.150.17
将服务器上架,安装新的centos系统覆盖原本的,磁盘重新分配,无需备份。
然后先进行docker安装。
参考:https://www.runoob.com/docker/centos-docker-install.html

添加了阿里云yum安装的。

然后安装K8S
参考:
https://blog.51cto.com/14320361/2463790?source=drh

按照步骤来一般都没问题,其中master免密登录node 的部分
ssh-keygen -t rsa用来生产master主机密钥
然后ssh-copy-id node01 将密钥复制给node01主机, 因为配置文件写过IP地址和用户名 所以直接输入node01
输入一次密码之后 ,之后直接ssh node01即可登录

然后docker pull镜像文件后,还需要自己打包成tar包,
首先docker images查看所有的镜像
使用docker save 将文件打包,然后使用脚本上传至K8S

在这里插入图片描述

初始化K8S集群
kubeadm init --kubernetes-version=v1.15.0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

出现很多问题一个个来解决
在这里插入图片描述
这是docker启动项警告,在/etc/docker/deamon.json文件下写入配置项 修改启动项
{
“exec-opts”:[“native.cgroupdriver=systemd”]
}

[ERROR ImagePull]: failed to pull image k8s.gcr.io/coredns:1.3.1: output: Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
初始化失败主要是国内被墙不能去下载镜像
所以之前pull 下来的镜像(脚本好想没有生效- -!),需要重新给他打个tag

docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.14.1 k8s.gcr.io/kube-apiserver:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.14.1 k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.14.1 k8s.gcr.io/kube-scheduler:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.14.1 k8s.gcr.io/kube-proxy:v1.14.1
docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag docker.io/mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag docker.io/coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

让他能够被K8S识别然后初始化

版本没对上,,,,,是V.1.15.0版本。 K8S非常吃版本,所以一定要注意

重新pull对应版本之后添加tag

初始化成功了,需要做的还有输入上面大红色框框的三条命令,并在其他两个node上输入下面的小红色框框,加入master的集群

The connection to the server localhost:8080 was refused - did you specify the right host or port?
查看kubectl get node 查看节点情况,弹出这个错误

从节点配置环境变量
echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile
使该文件立即生效
source ~/.bash_profile

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#将github官网指定的.yml配置文件下载到本地
但是因为是外网无法访问,查到一个方法
在 Wget 后面添加"–no-check-certificate"如下所示:
wget --no-check-certificate 你要下载的 SSL 网址
成功了~
在这里插入图片描述

在这里插入图片描述
出问题了,很多情况下的连接还是出错,
查了下原因应该是和这个,Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。
在docker server启动的时候,增加启动参数,默认使用HTTP访问:
vim /usr/lib/systemd/system/docker.service
在12行后面增加 --insecure-registry ip:5000
将-H fd:// --containerd=/run/containerd/containerd.sock改为–insecure-registry ip:5000重启
修改好后重启docker 服务

systemctl daemon-reload

systemctl restart docker

重启docker服务后,将容器重启

docker start $(docker ps -aq)

——————————————————————————
今天迟到了,,,,好烦
第二天连接服务器发现kubelet服务启动失败了
运行journalctl -xefu kubelet 命令查看systemd日志才发现
在这里插入图片描述
哦哦 想起来了,昨天连接外网一直连接不上,我就kubeadm reset 重置了kubeadm,所以很多文件都没有了,重新初始化再来吧!

在这里插入图片描述
这次直接外网安装又可以了。。。。我人晕了

[root@master images]# kubectl get pods --all-namespaces
//查看所有的名称空间的pod(可以看到flannel网络运行正常)

在这里插入图片描述
有几个没起来?

docker logs XXXX来查看日记报错
容器启动日记显示没有错误

kubectl describe pods kube-proxy-fwjds(pods name) -n kube-system(namespace)
查看pods启动出错
显示是由于无法连接到k8s.io外网地址
先用docker在国内云pull对应镜像,然后打包
sava -o XXX.tar.gz
再将其上传至对应的node01、node02,然后docker -i load xxx.tar.gz
重新查看pods运行情况,完成

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐