[root@k8s1 data]# ls
docker.tar.gz  download  install-docker.sh
[root@k8s1 data]# sh install-docker.sh install

4.所有节点为docker做linux内核转发

因为,docker底层使用了iptables,在容器与宿主机端口映射时,需要源地址转发,共享网络,所以,需要做内核转发配置;

echo ‘net.ipv4.ip_forward = 1’ >> /etc/sysctl.conf

sysctl -p

5.所有节点配置docker

参数说明

“registry-mirrors”: [“https://embkz39z.mirror.aliyuncs.com”], # 阿里云镜像加速,可以自己申请;

“insecure-registries”: [“http://harbor.oslee.com”], #允许拉取自建仓库harbor仓库的镜像,后面有部署harbor的教程;

“exec-opts”: [“native.cgroupdriver=systemd”]   #kubeadm去寻找的cgroup默认是systemd,而docker不配置的话,默认是cgroupfs,不配置这个,部署k8s时会报错;

“data-root”: “/data/lib/docker” # docker存储数据目录;

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://embkz39z.mirror.aliyuncs.com"],
  "insecure-registries": ["http://harbor.oslee.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "data-root": "/data/lib/docker"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker

6.所有节点关闭swap分区

[root@k8s1 data]# sed -ni ‘/[#]*swap/s@^@#@p’ /etc/fstab
[root@k8s1 data]# free -h
              total        used        free      shared  buff/cache   available
Mem:            31G        357M         28G        9.1M        1.9G         30G
Swap:            0B          0B          0B

7.所有节点验证网卡硬件编号是否冲突

# 所有节点都执行,对比是否冲突

ifconfig eth0 |grep ether |awk ‘{print $2}’

cat /sys/class/dmi/id/product_uuid

8.所有节点配置允许iptables桥接流量

cat > /etc/modules-load.d/k8s.conf << EOF
br_netfilter
EOF

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
EOF

sysctl --system

9.所有关闭防火墙和selinux

#1,关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

#2,关闭selinux

setenforce 0
sed -i ‘7c SELINUX=disabled’ /etc/selinux/config

三、k8s1节点安装harbor镜像仓库

1.安装harbor

#1,创建harbor工作目录

[root@k8s1 harbor]# mkdir -pv /data/harbor
[root@k8s1 harbor]# cd /data/harbor

#2,上传harbor本地安装包;

[root@k8s1 harbor]# ls
harbor-offline-installer-v2.3.1.tgz

#3,解压harbor安装包

[root@k8s1 harbor]# tar -xvf harbor-offline-installer-v2.3.1.tgz

#4,查看harbor的目录文件

[root@k8s1 harbor]# ll harbor
total 618124
-rw-r–r-- 1 root root      3361 Jul 19  2021 common.sh
-rw-r–r-- 1 root root 632922189 Jul 19  2021 harbor.v2.3.1.tar.gz
-rw-r–r-- 1 root root      7840 Jul 19  2021 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2500 Jul 19  2021 install.sh
-rw-r–r-- 1 root root     11347 Jul 19  2021 LICENSE
-rwxr-xr-x 1 root root      1881 Jul 19  2021 prepare

#5,复制修改harbor的配置文件名称
[root@k8s1 harbor]# cp harbor/harbor.yml.tmpl harbor/harbor.yml

#6,修改配置文件信息

[root@harbor harbor]# vim harbor/harbor.yml

hostname: harbor.oslee.com

################################################

#注释掉下面的信息

https related config

https:

# https port for harbor, default is 443

port: 443

# The path of cert and key files for nginx

certificate: /your/certificate/path

private_key: /your/private/key/path

################################################

harbor_admin_password: harbor123

# 启动harbor脚本

[root@k8s1 harbor]# ./harbor/install.sh

2.验证是否成功

[root@k8s1 harbor]# pwd
/data/harbor/harbor
[root@k8s1 harbor]# ls
common  common.sh  docker-compose.yml  harbor.v2.3.1.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare
[root@k8s1 harbor]# docker-compose ps

本地windows浏览器访问;

注意:先配置windows本地hosts;

10.128.175.251 harbor.oslee.com

四、kubeadm方式部署k8s

1.所有节点安装部署组件

# 本地离线安装

#1,上传并解压软件包

[root@k8s1 data]# tar -xvf kubeadm-kubelet-kubectl.tar.gz

#2,所有节点本地安装

yum -y localinstall kubeadm-kubelet-kubectl/*.rpm

#3,设置启动及开机自启动k8s

systemctl enable --now kubelet.service

#4,查看状态(此时启动失败,不用管,因为还没配置完成,配置完之后自动回启动)

systemctl status kubelet.service

2.初始化master节点(k8s1)

如果你的初始化失败,想要重新初始化:kubeadm reset -f

rm -rf /etc/kubernetes/manifests/kube-apiserver.yaml
rm -rf /etc/kubernetes/manifests/kube-controller-manager.yaml
rm -rf /etc/kubernetes/manifests/kube-scheduler.yaml
rm -rf /etc/kubernetes/manifests/etcd.yaml
rm -rf /var/lib/etcd/*

[root@k8s1 data]# kubeadm init --kubernetes-version=v1.23.17 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.100.0.0/16 --service-cidr=10.200.0.0/16 --service-dns-domain=oslee.com

参数释义:

–pod-network-cidr=10.100.0.0/16   #pod的网段

–service-cidr=10.200.0.0/16    #service资源的网段

–service-dns-domain=oslee.com  #service集群的dns解析名称

Your Kubernetes control-plane 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 -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

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/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.35.8.50:6443 --token 19g89m.8susoikd7tl2c2n8 \
        --discovery-token-ca-cert-hash sha256:a4342264f0142b43a1ac1f7a1b66aafd04f915194d5298eb96b7b2d5bc292687 

#拷贝整数到家目录下

[root@k8s1 data]# mkdir -p $HOME/.kube
[root@k8s1 data]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s1 data]# sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

3.验证下master节点组件

#1,查看master组件

[root@k8s1 data]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE                         ERROR
scheduler            Healthy   ok                              
controller-manager   Healthy   ok                              
etcd-0               Healthy   {“health”:“true”,“reason”:“”}

4.worker节点加入k8s集群

# 上面初始化master节点时生成的

kubeadm join 10.35.8.50:6443 --token 19g89m.8susoikd7tl2c2n8 \
        --discovery-token-ca-cert-hash sha256:a4342264f0142b43a1ac1f7a1b66aafd04f915194d5298eb96b7b2d5bc292687

# 如果过期了,可重新生成

kubeadm token create --print-join-command

5.此时查看节点

[root@k8s1 ~]# kubectl get nodes
NAME   STATUS     ROLES                  AGE     VERSION
k8s1   NotReady   control-plane,master   22m     v1.23.17
k8s2   NotReady                   4m10s   v1.23.17
k8s3   NotReady                   15s     v1.23.17

################

此时发现,状态显示“没准备好”,是因为未有CNI网络组件

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

新**

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
[外链图片转存中…(img-OFzeCqU0-1712939227133)]

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-sv4Mxcee-1712939227134)]

Logo

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

更多推荐