kubeadm安装k8s集群

安装kubeadm kubectl kubelet

对于Ubuntu/debian系统,添加阿里云k8s仓库key,非root用户需要加sudo

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 

然后在/etc/apt/source.list末尾加一行

deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

然后更新apt列表,安装kubeadm和kubectl

apt-get update
apt-get install -y kubelet kubeadm kubectl

对于CentOS/RHEL/Fedora

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
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用 yum install -y --nogpgcheck kubelet kubeadm kubectl 安装

初始化集群

sudo  kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=cri --control-plane-endpoint "192.168.1.13:6443"  --kubernetes-version=1.18.3
image-repository是镜像仓库地址,默认是谷歌的,国内无法访问,所以改为阿里云的
pod-network-cidr是pod的子网网段设置
control-plane-endpoint是控制层的入口,所以是填主节点的ip+指定一个端口,后续有其他机器加入集群就是从这里访问的
重要:kubernetes-version是k8s的版本,这个需要和上一步安装的kubeadm版本一致, kubeadm version可以查看到版本号

然后等几分钟初始化完毕就会提示下一步操作。
拷贝admin.conf到.kube,重命名为config
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

这里还可以看到其他节点加入集群的命令,即有kubeadm join那两行,加入控制层(master或者叫controller)多了个--control-plane参数,加入工作节点(worker)则没有。k8s的高可用集群一般建议至少3个主节点(ps:我的机器少,只有一个主节点,一个worker节点)

安装pod网络

下载flannel.yml到所在目录,安装flannel

kubectl apply -f flannel.yml

加入其他节点

拷贝证书

先在要加入的节点的用户目录下新建~/pki/etcd目录

mkdir -p ~/pki/etcd

然后在刚才安装k8s的主节点通过scp把证书都拷贝过去

cd /etc/kubernetes/pki
sudo scp sa.key sa.pub front-proxy-ca.crt front-proxy-ca.key myuser@192.168.1.113:~/pki/
cd etcd
sudo scp ca.crt ca.key myuser@192.168.1.113:~/pki/etcd

再切回要加入的节点,执行本文一开始安装kubeadm的步骤

然后把证书移动到/etc/kubernetes/pki下

sudo mv -f ~/pki/* /etc/kubernetes/pki/

最后加入集群即可,这行命令可以在主节点的集群初始化最后找到,每个集群的都不一样,需要自己去拷贝自己生成的那个

sudo kubeadm join 192.168.1.13:6443 --token fd1j75.qxrwb8h1dbogasb7 --discovery-token-ca-cert-hash sha256:4f2f2a8900ff54575406f443e49ec78d1658e437f3e1dd2785c6fbd05bcbf786 --control-plane

最后也会有提示让把admin.conf拷贝到.kube,修改所有者,照做就是

如果token过期,可以在主节点执行 kubeadm token create 以生成新的token,有效期两小时

安装桌面客户端

最后安利一个很不错的k8s集群客户端应用lens,点击选择对应版本下载,打开就可以用了。

打开,点击+号,选择自定义,然后把主节点的~/.kube/config文件内容拷贝这里就能连接上了

 

安装监控系统前需要将主节点设置污点容忍(taint),master节点默认是有设置污点的,不能将pod分配到污点节点,只有设置了污点容忍监控系统的pod才能安装到主节点,当然,有worker够的话也不用

以下命令就是去除主节点的污点。

sudo kubectl taint nodes --all node-role.kubernetes.io/master-

安装监控系统,集群图标,点击右键设置。拉到最下边的Features,Metrics,点击安装,集群就会自动安装普罗米修斯了

 

原文地址:https://www.cnblogs.com/turingguo/p/13094498.html