k8s安装使用教程+ingressk8s安装使用教程+ingressk8s安装使用教程+ingressk8s安装使用教程+ingressk8s安装使用教程+ingress
注意
1 .服务器配置 大于等于 2核 4 G
2.服务器之间内网必须可以ping通
3.系统是CentOS-7.9.2111-x64
hostnamectl set-hostname xuegod1 设置主机名 每台机器
hostnamectl set-hostname xuegod2
安装基础软件包 每台机器
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate telnet
修改内核参数 全部机器
modprobe br_netfilter
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 -p /etc/sysctl.d/k8s.conf 生效
配置阿里云docker源 全部机器
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
配置阿里云Kubernetes yum源
tee 打印 出来
tee /etc/yum.repos.d/kubernetes.repo <<-‘EOF’
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
10.基于chrony配置服务器时间跟网络时间同步 每台机器
date -s “2022-12-05 18:05:00” #修改为自已当前的时间
[root@xuegod63 ~]# hwclock -w #将系统时间,写入到BIOS上
[root@xuegod63 ~]# hwclock #查看BIOS时间,已经改成功了
2022年07月28日 星期四 15时36分16秒 -0.932066 秒
安装 yum -y install chrony systemctl enable chronyd --now
vim /etc/chrony.conf
把
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
修改成
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp1.tencent.com iburst
server ntp2.tencent.com iburst
重启chrony systemctl restart chronyd
安装docker 每台机器都要
yum install docker-ce -y
systemctl start docker && systemctl enable docker.service 设为开机启动
配置镜像地址
tee /etc/docker/daemon.json << ‘EOF’
{
“registry-mirrors”:[“https://vh3bm52y.mirror.aliyuncs.com”,“https://registry.docker-cn.com”,“https://docker.mirrors.ustc.edu.cn”,“https://dockerhub.azk8s.cn”,“http://hub-mirror.c.163.com”],
“exec-opts”: [“native.cgroupdriver=systemd”]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
systemctl status docker
安装初始化k8s需要的组件 每台机器
[root@xuegod63 ~]# yum install -y kubelet-1.23.1 kubeadm-1.23.1 kubectl-1.23.1
[root@xuegod63 ~]# systemctl enable kubelet systemctl enable kubelet.service
[root@ser305975269592 ~]# docker --version
Docker version 20.10.21, build baeda1f
上传 并安装镜像 每台机器 提前 把k8s-images-v1.23.1.tar.gz 上传到服务器root目录
k8s-images-v1.23.1.tar.gz 是我docker打包的 k8s镜像
链接:https://pan.baidu.com/s/15jP4DK-YLyVEk5j15XRZYQ
提取码:709u
所有机器 docker load -i k8s-images-v1.23.1.tar.gz
kubeadm config print init-defaults > kubeadm.yaml 只在master机器 生成一个yaml文件 成功的用这个 就可以了
vim /etc/hosts 每台机器
172.16.0.69 xuegod1
172.16.0.24 xuegod2
修改vim kubeadm.yaml 只在 master主机
修改下面内容开始
advertiseAddress: 10.206.16.13 本机ip –apiserver-advertise-address是内网ip,即云服务器的ip地址 ,在kubeadm的apiserver-advertise-address参数应该写内网地址,而不是公网地址。
name: xuegod63
serviceSubnet: 10.96.0.0/12
imageRepository: k8s.gcr.io 改成 imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kubernetesVersion: 1.23.0 改成 kubernetesVersion: 1.23.1
podSubnet: 10.244.0.0/16 #指定pod网段, 需要新增加这个
修改内容结束
#在文件最后,插入以下内容,(复制时,要带着—):
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
#基于kubeadm.yaml文件初始化k8s
[root@xuegod63 ~]# kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification
kubeadm reset 情况 经常用到
是公有云的问题,在kubeadm的apiserver-advertise-address参数应该写内网地址,而不是公网地址。
其他 node 加入 集群
主机上面:kubeadm token create --print-join-command
在副机 上面工作节点 kubeadm join 10.206.16.14:6443 --token 6lgmgc.4pfgay1yrx987p62 --discovery-token-ca-cert-hash sha256:096d26c99b214f88bdca5b5c2e1ad9bc6d22a6cc206cfd06fb410b315f9a6e96 --ignore-preflight-errors=SystemVerification
[root@ser305975269592 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
xuegod1 NotReady control-plane,master 12m v1.23.1
xuegod2 NotReady <none> 9s v1.23.1
可以看到xuegod2的ROLES角色为空,我们可以手工搭上标签,这里不影响集群正常工作。 主机上面操作
[root@xuegod2 ~]# kubectl label node xuegod2 node-role.kubernetes.io/worker=worker
主机上面 安装网络插件 解决 STATUS NotReady
安装kubernetes网络组件-Calico
主机上面 把 calico.yaml calico.yaml去官网下载 上传root目录
主机上面 执行 kubectl apply -f calico.yaml
安装完成
k8s可视化界面
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard type: ClusterIP 改为 type: NodePort
kubectl get svc -A |grep kubernetes-dashboard