---写在前面---,安装的v1.23.6版本,docker为20版本

一,初始操作

1,关掉防火墙

[root@localhost ~]# systemctl disable firewalld #永久关闭

[root@localhost ~]# systemctl status firewalld

2,关掉selinux

[root@localhost /]# vim /etc/sysconfig/selinux

[root@localhost /]# cat /etc/sysconfig/selinux

SELINUX=enforcing #a默认开启该内置防火墙

SELINUX=disabled  #关闭状态

----------上面的方法为永久关闭

[root@localhost /]# setenforce 0 # 临时关闭,重启后恢复版本为

[root@localhost /]# getenforce # 重启后查看该内置防火墙状态

3,关闭交换分区swap

swapoff -a #临时

sed -ri  's/.*swap.*/#&/'  /etc/fstab   # 永久

lsblk   # 查看交换分区状态

Ps:关闭swap交换分区后,要重启虚拟机

4,根据规划设置修改主机名

查看主机名:

[root@localhost ~]# hostname

localhost.localdomain

配置主机名:(修改后记得reboot重启)

[root@localhost ~]# hostnamectl set-hostname lanbo

查看和配置主机名:(修改该文件也可以)

[root@lanbo ~]# cat /etc/hostname

5,在master添加hosts

#在master添加hosts,注意修改为你自己的ip

cat >> /etc/hosts << EOF

192.168.122.128 k8s-master

192.168.122.131 k8s-node1

EOF

------------------------------------------

cat /etc/hosts  # 查看写入数据

6,将桥接的IPV4流量传递到iptables的链

ps:yum -y install 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

-----------------------------------------------

cat  /etc/sysctl.d/k8s.conf  # 查看写入内容是否正常

sysctl  --system  #生效

7,时间同步,与外面的Windows时间一致

yum install ntpdate -y

ntpdate time.windows.com

-------上面不行试试这个

[root@master ~]# systemctl start chronyd

[root@master ~]# systemctl enable chronyd

[root@master ~]# date

-------

二,安装基础软件

1,安装docker----详细安装看我的docker安装帖子----

2,配置K8s阿里yum源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

 cat /etc/yum.repos.d/kubernetes.repo #查看内容是否写入文件

3, 安装kubeadm、kubelet、kubectl

yum install -y kubelet-1.23.6  kubeadm-1.23.6  kubectl-1.23.6

4、配置kubelet的cgroup

cat /etc/sysconfig/kubelet

编辑/etc/sysconfig/kubelet, 添加下面的配置

KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"

KUBE_PROXY_MODE="ipvs"

systemctl enable kubelet   # 设置开机启动

三,准备集群镜像

1,docker info | grep Driver  # 查看docker所用驱动

       2,vim /etc/docker/daemon.json  # 修改所用驱动,要与K8s的驱动保持一致为‘systemd

# 配置关闭 Docker 的 cgroups,修改 /etc/docker/daemon.json,加入以下内容,要放到大括号里面

"exec-opts": ["native.cgroupdriver=systemd"]

# 重启 docker

systemctl daemon-reload  # 重新加载配置

systemctl restart docker # 重启docker

kubelet --version  # 查看版本信息

systemctl status  kubelet

systemctl start  kubelet

journalctl -xefu  kubelet  # 查看报错信息

ps:这两部不用做,kubelet状态为activeing就行,直接往下走

yum clean all  # 清除所有缓存

kubeadm reset  # 重置kubeadm ,然后重新进行初始化

-------------只在master上执行------------------------------------------------------------------

kubeadm init \

      --apiserver-advertise-address=192.168.122.128 \ 

      --image-repository registry.aliyuncs.com/google_containers \

      --kubernetes-version v1.23.6 \

      --service-cidr=10.96.0.0/12 \

      --pod-network-cidr=10.244.0.0/16

-------------------------------------------------------------------------------------

ps:出现这些代表初始化成功

# 执行如下命令

==============================直接看上面那个图

================================================

 mkdir -p $HOME/.kube

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

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

4. 加入 Kubernetes Node ----节点机执行命令

1,# token 没有过期可以通过如下命令获取

 kubeadm token list

# 如果 token 已经过期,就重新申请

kubeadm token create

2,替换获取的token值

kubeadm join 192.168.122.128:6443 --token cqwxt6.08to1xkuqc5pne6r  --discovery-token-ca-cert-hash  sha256:7d3dffb82c573a7544ca2d353870dbb2484b79eb47388541dae9d2a6e4bf4936

3,# 获取 --discovery-token-ca-cert-hash 值,得到值后需要在前面拼接上 sha256:

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \

openssl dgst -sha256 -hex | sed 's/^.* //'

=========================================================================

# 验证k8s初始化成功

[root@k8s-master ~]# kubectl get nodes   # 获取节点

NAME         STATUS     ROLES                  AGE     VERSION

k8s-master   NotReady   control-plane,master   4m46s   v1.23.6

================================

四,网络相关的配置

1,kubectl get componentstatus # 查看节点信息是否存在问题

2, kubectl get pods -n kube-system  # 缺少这两个网络相关的配置

3,修改网络相关的配置文件

# 在 master 节点上执行

mkdir /opt/K8s # 创建文件夹

cd  /opt/K8s 

1,# 下载 calico 配置文件,可能会网络超时

ps:有可能下载的配置文件里面是一段跳转网址,将网址替换下即可

curl https://calico-v3-25.netlify.app/archive/v3.25/manifests/calico.yaml -O

cat calico.yaml # 查看配置文件内容

2,# 修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR 配置,修改为与初始化的 cidr 相同

-----------------------修改1-----------------------------------------------------

vim calico.yaml  #编辑配置文件

ps:/CALICO_IPV4POOL_CIDR  # 命令行模式下搜索配置文件的这段内容,修改为如下

            - name: CALICO_IPV4POOL_CIDR

              value: "192.168.0.0/16"

---------这步操作可以先不做,后面再做---------------------------------------

grep image calico.yaml  # 查看所需镜像文件

sed -i 's#docker.io/##g' calico.yaml  # 修改镜像下载源,加快效率

docker pull calico/cni:v3.25.0 # 下载所有的所需镜像文件

------------------------------------------------------------------------------------------

五,创建部署后,测试 kubernetes 集群

1,构建集群

kubectl  apply -f  calico.yaml

kubectl get pods -n kube-system # 查看缺少的网络配置

# 查看包的部署情况

kubectl describe po calico-kube-controllers-cd8566cf-m975k -n kube-system 

ps:这样代表已经全部准备好了,下载和部署容器需要一定的时间,请耐心等待呀

---验证-----------------------------------------------------

# 创建部署

kubectl create deployment nginx --image=nginx

# 暴露端口

kubectl expose deployment nginx --port=80 --type=NodePort

# 查看 pod 以及服务信息

kubectl get pod,svc

------------------------------------------和我一样就是验证通过了

Logo

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

更多推荐