组件 端口号
API Server 8080 6443(HTTPS安全端口号)
Controller Manager 10252
Scheduler 10251
kubelet 10250 10255(只读端口号)
etcd 2379(客户端) 2380(供etcd集群内部节点之间访问)
集群DNS服务 53(UDP) 53(TCP)
calico 179端口号
镜像库 5000
一: 配置YUM源
[kubernetes]
name=Kubernetes Repository
baseurl=kubernetes-yum-repos-kubernetes-el7-x86_64安装包下载_开源镜像站-阿里云
kubernetes-yum-repos-kubernetes-el7-x86_64安装包下载_开源镜像站-阿里云kubernetes-yum-repos-kubernetes-el7-x86_64安装包是阿里云官方提供的开源镜像免费下载服务,每天下载量过亿,阿里巴巴开源镜像站为包含kubernetes-yum-repos-kubernetes-el7-x86_64安装包的几百个操作系统镜像和依赖包镜像进行免费CDN加速,更新频率高、稳定安全。https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
exclude=kubelet kubeadm kubectl
cat>filename<<EOF
EOF
二:YUM安装kubeadm kubelet kubectl
cd /etc/yum.repos.d/
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
或者带版本 kubeadm-1.版本
systemctl start kubelet
systemctl enable kubelet
swapoff -a
systemctl start kubelet
systemctl enable kubelet
----------------------------------------------------------------------------------
三: 修改kuberadm的默认配置
kubeadm 将配置文件以ConfigMap形式保存到集群中,方便于后续的查询和升级工作,
kubeadm config 子命令提供了对这组功能的支持。
初始化控制平面init 加入节点join,通过指定的配置文件修改默认参数的值
kubeadm config print init-defaults: 输出kubeadm init命令默认参数的内容
kubeadm config print join-defaults: 输出kubeadm join命令默认参数的内容
kubeadm config migrate : 在新旧版本之间进行配置转换
kubeadm config images list: 列出所需的镜像列表
kubeadm config images pull: 拉取镜像到本地
kubeadm config print init-defaults > init.default.yaml #初始化参数
kubeadm config images list
-----------------------------------------------------------------------------------------------
四: 安装docker
内存不够
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.25.3
init-config.yaml
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
systemctl enable kubelet
failed to ensure lease exists, will retry in 7s, error: Get "https://172.25.74.247:6443/apis/coordination.k8s.io/v1/namespaces/kube-node-lease/leases/node?timeout=10s": dial tcp 172.25.74.247:6443: connect: connection refused
查看kubelet报错:
journalctl -f -u kubelet
journalctl -f -u kube-proxy
kind.nodeRegistration.name: 为当前主机名
五:kubeadm初始化
kubeadm init phase preflight #预检查操作
与kubernetes保持一致
环境:systemctl stop firewalld
systemctl stop firewalld
setenforce 0
hostnamectl set-hostname master11
hostnamectl set-hostname master12
hostnamectl set-hostname master13
内核流量转发:
cat << EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
vm.max_map_count=262144
EOF
加载内核参数
modprobe br_netfilter
-
sysctl -p /etc/sysctl.d/k8s.conf
docker info |grep "Cgroup Driver"
"exec-opts": ["native.cgroupdriver=systemd"]
初始化: kubeadm init --config=init-config.yaml
containerd: contain下载地址: Releases · containerd/containerd (github.com)
Releases · containerd/containerd (github.com)
#注释vim /etc/containerd/config.toml
v1.23.6 v1.24以后放弃docker了
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
docker rmi -f registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.9.3
配置文件位置:
cd /etc/kubernetes/manifests
(1条消息) kubenetes master ip地址变了 Error getting node“ err=“node \“master\“ not found_rain_vigour的博客-CSDN博客
改镜像名称:
docker image tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
kubectl 配置CA证书访问 master
master多执行
如果是root用户,可以执行
export KUBECONFIG=/etc/kubernets/admin.conf
六: 安装calico插件
calico是一个三层的虚拟网络解决方案,他把每个节点都当做虚拟路由器,每个POD都是虚拟路由器下的的终端,各节点通过BGP协议生成路由规则,实现pod互通
1: 获取清单
获取清单文件:curl https://docs.projectcalico.org/manifests/calico.yaml -O
2: 清单重要配置
主要配置在calico.yaml 中的calico-node deamonset中环境变量设置
2.2、配置POD网段和网卡
一键安装:
kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml"