K8S安装详细教程(妥妥的)
------------只在master上执行-----------------------------------------------------------------------------------------修改1--------------------------------------------------------验证---------------------------
---写在前面---,安装的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
------------------------------------------和我一样就是验证通过了
更多推荐
所有评论(0)