etcd也可以不部署在Master节点,单独搭建。
负责将新创建的Pod调度到合适的节点上运行。它会根据Pod的资源需求和节点的容量情况来进行调度决策,保证集群的均衡负载。
用于管理与特定云平台相关的控制器。它的作用是将云平台的功能封装成Kubernetes的API,以便与其他组件进行交互。cloud-controller-manager包含多个与云平台交互的控制器,如节点控制器、路由控制器、服务控制器等
kubelet
kube-proxy
容器运行时(Container Runtime)
CNI插件(Container Network Interface)
1.配置三个主机名
hostnamectl set-hostname k8s-master
2.在三台主机绑定hosts文件
192.168.10.101 k8s-master
192.168.10.102 k8s-node1
192.168.10.103 k8s-node2
3.关闭交换分区里的swap defaults
vim /etc/fstab
4.配置kubernetes的yum源
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum clean all //清理
5.安装 kubelet,kubeadm,kubectl 所有节点都装
yum -y install kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
kubelet负责节点和Pod的管理,kubeadm负责集群的部署和管理,而kubectl则提供了与集群进行交互和管理的命令行工具
6.设置开机启动 用start是无法启动的
systemctl enable kubelet
7.生成初始化配置文件
kubeadm config print init-defaults > init-config.yaml
8.修改初始化配置文件
advertiseAddress:192.168.10.101
name : k8s-master
imageRepository: registry.aliyuncs.com/google_containers //阿里源
podSubnet:10.244.0.0/16
9.拉取所需的镜像(这里我用的是离线镜像)
11.初始化 k8s-master 注意执行完以后有生成的令牌
kubeadm init --config=init-config.yaml
12.复制配置文件到用户的home 目录
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes
sudo cp -i /etc/kubernrtrs/admin.conf $HOME/.kube/config
13.将生成的令牌复制到其他两个节点
14.在master查看节点
kubectl get nodes
kubectl get pod -A
15.部署Calico网络插件
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
16.Metrics-server部署
下载Metrics-server的yaml文件并修改
- --kubelet-insecure-tls //添加
image: registry.cn-hangzhou.aliyuncs.com/google containers/metrics-server:vo.6.3
kubectl create -f components.yaml
17测试安装结果
kubectl top node
18:Dashboard部署
创建一个dashborad工作目录
mkdir /opt/k8s/dashboard
cd /opt/k8s/dashboard
19.上传yaml文件之后生成
kubectl create -f .
20.修改谷歌浏览器,在属性里修改
--test-type --ignore-certificate-errors //注意前面有空格
21.修改端口号
kubectl edit svc -n kubernetes-dashboard
22.查看端口号
kubectl get svc kubernetes-dashboard -n kubernetes-dashboard
22.查看token
admin-user | awk 'fprint $1}')
6:登录dashboard