暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

k8s环境搭建

这次没考好 2025-01-02
317

1.安装前环境清理:

找到安装时的节点,进入kubeasz容器,进入/etc/ansible目录:

查看docker运行的项目:docker ps

使用名称或id进入kubeasz的容器:docker exec -it a5f466748bc6 bash

进入/etc/ansible目录:cd  /etc/ansible/

bash-4.4# ls

01.prepare.yml         04.kube-master.yml     11.harbor.yml          90.setup.yml           README.md              bin                    example                manifests              tools

02.etcd.yml            05.kube-node.yml       22.upgrade.yml         91.start.yml           a                      dockerfiles            gcluster-service.yaml  pics

03.containerd.yml      06.network.yml         23.backup.yml          92.stop.yml            ansible.cfg            docs                   hosts                  pssh

03.docker.yml          07.cluster-addon.yml   24.restore.yml         99.clean.yml           ansible.cfg.rpmnew     down                   hosts.rpmnew           roles

 

执行清理命令:

bash-4.4# ansible-playbook 99.clean.yml

 

卸载后检查:

检查各节点etcd.service、kube-apiserver、kubelet是否都卸载干净(例:systemctl status etcd)

卸载后建议重启一下节点。

 

 

###建议找几个环境比较干净的节点去搭建,能少解决非常多问题

#安装节点可以独立于k8s集群,也可以是k8s集群中的节点

2.安装前准备-->配置k8s集群各节点间互信、安装节点和k8s集群节点互信

配置互信命令:ssh-copy-id <ip>

遇到的问题:

①[root@songyanling-node-3 ~]# ssh-copy-id 10.10.11.16

 

/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.pub': No such file or directory

        (to install the contents of '/root/.pub' anyway, look at the -f option)

解决方法:ssh-keygen -t dsa,回车回车回车,然后再次配置互信

 

②[root@jubin-node-1-0 ~]# ssh-copy-id 10.10.3.74

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

 

/usr/bin/ssh-copy-id: ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

ERROR: @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @

ERROR: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

ERROR: IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

ERROR: Someone could be eavesdropping on you right now (man-in-the-middle attack)!

ERROR: It is also possible that a host key has just been changed.

ERROR: The fingerprint for the ECDSA key sent by the remote host is

ERROR: SHA256:EQzIyLTcC1ZLWi+c9Kf+sLD7G9yQJhwiImwebLs6C28.

ERROR: Please contact your system administrator.

ERROR: Add correct host key in /root/.ssh/known_hosts to get rid of this message.

ERROR: Offending ECDSA key in /root/.ssh/known_hosts:21

ERROR: ECDSA host key for 10.10.3.74 has changed and you have requested strict checking.

ERROR: Host key verification failed.

解决方法:在执行节点上删除/root/.ssh/known_hosts后,再次执行互信

 

3.安装-->在安装节点上安装docker、安装ansible并启动

①安装并启动docker:

在10.10.55.76节点上有docker安装包:/opt/docker-ce-1703(建议使用这个docker包,因为yum install docker安出来的可能有版本问题)

拷贝到自己的节点,然后执行安装,安装顺序如下:

rpm -ivh docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

rpm -ivh docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm

(如果安装报错缺少包的话,百度一下把缺少的包安上就行)

启动docker:systemctl start docker

 

②安装并启动ansible

在10.10.11.2的/etc目录下有ansible.tar,拷贝到安装节点的/etc下解压:tar -xvf xxx.tar

启动ansible:进入 /etc/ansible/tools,执行:./easzup -S

进入kubeasz容器:docker exec -it kubeasz bash

然后到/etc/ansible目录下:先配置hosts

配置完成后依次执行以下.yml的安装,例如:ansible-playbook 01.prepare.yml

01.prepare.yml         04.kube-master.yml    

02.etcd.yml            05.kube-node.yml       

                               06.network.yml         

03.docker.yml          07.cluster-addon.yml   

 

4.安装后检查

kubectl get node查看所有node和master节点是否都是ready状态

如果有节点是not ready,到节点上看是否是kubelet服务有问题,如果有问题,查看free -g看swap是否都为0,如果不是执行swapoff -a

5.安装后推镜像

一般选取k8s的master节点推镜像就行

(1)解压集群安装包后,进入gcdw/image目录下,有8个镜像

①docker load -i <镜像.tar>

例:docker load -i server-9.9.0.7.4-202112161240.tar

20c8fba63ae3: Loading layer [==================================================>]  241.1MB/241.1MB

5c0b176700ce: Loading layer [==================================================>]  289.1M192.168.8.84/gcdw/gcdw-server:9.8.0B/289.1MB

Loaded image: 192.168.8.84/gcdw/gcdw-server:9.9.0.7.4

 

②docker tag  192.168.8.84/gcdw/gcdw-server:9.9.0.7.4  harbor.gbase.cn/gcdw/gcdw-server:9.9.0.7.4

③docker push harbor.gbase.cn/gcdw/gcdw-server:9.9.0.7.4

 

(2)推镜像可能遇到的报错

①报错一

docker push harbor.gbase.cn/gcdw/gcdw-operator:9.8.0.4.1

The push refers to a repository [harbor.gbase.cn/gcdw/gcdw-operator]

Get https://harbor.gbase.cn/v1/_ping: dial tcp: lookup harbor.gbase.cn on [2001:db8a:8620:9530::2]:53: dial udp [2001:db8a:8620:9530::2]:53: connect: network is unreachable

解决方法:echo '10.10.1.1    harbor.gbase.cn' >> /etc/hosts

 

②报错二

docker push harbor.gbase.cn/gcdw/gcdw-operator:9.8.0.4.1

The push refers to a repository [harbor.gbase.cn/gcdw/gcdw-operator]

Get https://harbor.gbase.cn/v1/_ping: dial tcp 10.10.1.1:443: getsockopt: connection refused

解决方法:

cat > /etc/docker/daemon.json << EOF

{

  "registry-mirrors": ["http://harbor.gbase.cn"],

  "insecure-registries": ["harbor.gbase.cn"]

}

EOF

修改后重新加载daemon,并重启docker: systemctl daemon-reload;systemctl restart docker

 

③报错三

docker push harbor.gbase.cn/gcdw/gcdw-operator:9.8.0.3.7

The push refers to a repository [harbor.gbase.cn/gcdw/gcdw-operator]

9cec9d938f49: Preparing

4bcb77274d4a: Preparing

071d8bd76517: Preparing

denied: requested access to the resource is denied

解决方法:需要docker login harbor.gbase.cn 用户名密码为admin/Harbor12345

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论