Kubeadm安装 kubernets


1.23.0所需镜像安装地址:redcatdocker's Profile | Docker Hub,下载后打tag

安装 kubeadm

1准备工作

禁用交换分区:/etc/fstab注释swap行,并swapoff -a

2确保mac和product_uuid的唯一性:

3允许iptables检查桥接流量

cat <

br_netfilter

EOF

modprobe br_netfilter

cat <
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

4检查所需端口

控制节点

协议

方向

端口范围

作用

使用者

TCP

入站

6443

Kubernetes API 服务器

所有组件

TCP

入站

2379-2380

etcd 服务器客户端 API

kube-apiserver, etcd

TCP

入站

10250

Kubelet API

kubelet 自身、控制平面组件

TCP

入站

10251

kube-scheduler

kube-scheduler 自身

TCP

入站

10252

kube-controller-manager

kube-controller-manager 自身

工作节点

协议

方向

端口范围

作用

使用者

TCP

入站

10250

Kubelet API

kubelet 自身、控制平面组件

TCP

入站

30000-32767

NodePort 服务?

所有组件

5安装 runtime

Docker自行安装

运行时

域套接字

Docker

/var/run/dockershim.sock

containerd

/run/containerd/containerd.sock

CRI-O

/var/run/crio/crio.sock

6安装 kubeadm、kubelet 和 kubectl

每个节点上都需要安装 这三个包

配置国内下载源

[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

exclude=kubelet kubeadm kubectl

关闭selinux:

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

7使用 systemd 来管理容器的 cgroup

sudo mkdir /etc/docker
cat <
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

systemctl enable docker

systemctl daemon-reload

systemctl restart docker

使用 kubeadm 创建集群

1、初始化master

kubeadm init --apiserver-advertise-address=master_ip --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.23.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

2、在node 上执行初始化后结果的最后一行   kubeadm join

3、添加网络插件

curl  https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -o kube-flannel.yml

kubectl apply -f kube-flannel.yml

执行以下命令状态都为准备即安装完成。

kubectl get node

NAME      STATUS   ROLES                  AGE    VERSION

kmaster   Ready    control-plane,master   176m   v1.23.0

knode     Ready                     173m   v1.23.0

4、dashboard安装

curl  https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml -o recommended.yaml

kubectl apply -f recommended.yaml

kubectl proxy &

本地终端进行ssh转发

ssh -L localhost:8001:localhost:8001 -NT root@10.10.*.*

创建登录用户

kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard

kubectl create clusterrolebinding dashboard-admin-rb --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin

kubectl get secrets -n kubernetes-dashboard | grep dashboard-admin

kubectl describe secrets dashboard-admin-token-**** -n kubernetes-dashboard

本地浏览器打开并使用上面获得的token登录

Kubernetes Dashboard

相关