赞
踩
使用kubeadmin通过离线镜像安装(推荐)
使用阿里公有云平台k8s(钞能力)
通过yum官方仓库安装上古版本(太古老,不太推荐)
二进制包的形式进行安装,kubeasz 【github】(不够安全)
链接: https://pan.baidu.com/s/19k01JgowPatiBPauoZi–g 密码: f88j
节点IP | 节点角色 |
---|---|
192.168.8.64 | Master |
192.168.8.65 | Node1 |
192.168.8.66 | Node2 |
注意:搭建的机器CPU需要2核以上,否则无法安装k8s,内存最好2GB以上,这个暂时没测试出有硬性要求
这一步没有什么特殊设置的话,一路默认回车下一步即可
ssh-keygen -t rsa
调用格式如下
ssh-copy-id 【远程账户名称】@【远程ip】
ssh-copy-id root@192.168.8.64
ssh-copy-id root@192.168.8.65
ssh-copy-id root@192.168.8.66
都按照第一台服务器进行操作
测试一下是否是不需要密码就可以登陆了
调用格式如下
ssh 【远程账户名称】@【远程ip】
ssh root@192.168.8.64
exit
ssh root@192.168.8.65
exit
ssh root@192.168.8.66
exit
Master、Node1、Node2节点都需要执行
timedatectl set-timezone Asia/Shanghai
- 1
Master节点执行
hostnamectl set-hostname master
- 1
Node1执行
hostnamectl set-hostname k8s-node1
- 1
Node2执行
hostnamectl set-hostname k8s-node2
- 1
echo "192.168.8.64 master" > /etc/hosts
echo "192.168.8.65 node1" > /etc/hosts
echo "192.168.8.66 node2" > /etc/hosts
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
mkdir -p /usr/local/k8s-install
cd /usr/local/k8s-install
tar -zxvf docker-ce-18.09.tar.gz
cd docker
yum localinstall -y *.rpm
systemctl start docker
systemctl enable docker
cgroups是control groups的简称,它为Linux内核提供了一种任务聚集和划分的机制,通过一组参数集合将一些任务组织成一个或多个子系统。
cgroups是实现IaaS虚拟化(kvm、lxc等),PaaS容器沙箱(Docker等)的资源管理控制部分的底层基础。
子系统是根据cgroup对任务的划分功能将任务按照一种指定的属性划分成的一个组,主要用来实现资源的控制。
在cgroup中,划分成的任务组以层次结构的形式组织,多个子系统形成一个数据结构中类似多根树的结构。cgroup包含了多个孤立的子系统,每一个子系统代表单一的资源
执行以下指令
docker info | grep cgroup
[root@k8s-master ~]# docker info | grep cgroup
Cgroup Driver: cgroupfs
如果不是cgroupfs,执行下列语句
cat << EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
EOF
systemctl daemon-reload && systemctl restart docker
kubeadm是集群部署工具
cd /usr/local/k8s-install/kubernetes-1.14
tar -zxvf kube114-rpm.tar.gz
cd kube114-rpm
yum localinstall -y *.rpm
swapoff -a
vi /etc/fstab
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
cd /usr/local/k8s-install/kubernetes-1.14
docker load -i k8s-114-images.tar.gz
docker load -i flannel-dashboard.tar.gz
查看docker下的k8s镜像
[root@k8s-master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/kube-proxy v1.14.1 20a2d7035165 2 years ago 82.1MB
k8s.gcr.io/kube-apiserver v1.14.1 cfaa4ad74c37 2 years ago 210MB
k8s.gcr.io/kube-controller-manager v1.14.1 efb3887b411d 2 years ago 158MB
k8s.gcr.io/kube-scheduler v1.14.1 8931473d5bdb 2 years ago 81.6MB
quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 2 years ago 52.6MB
k8s.gcr.io/coredns 1.3.1 eb516548c180 2 years ago 40.3MB
k8s.gcr.io/kubernetes-dashboard-amd64 v1.10.1 f9aed6605b81 2 years ago 122MB
k8s.gcr.io/etcd 3.3.10 2c4adeb21b4f 2 years ago 258MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 3 years ago 742kB
kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16
执行完以后,会有如下提示,执行他:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
admin.conf是集群的核心文件,包含了当前集群的安全授权数据以及集群自身的信息
在[1.2.11 主服务器配置(Master)](#1.2.11 主服务器配置(Master))中的输出结尾有这么一段话
复制
->粘贴
至txt文档中,一会再使用
kubectl get nodes
#查看所有的Nodes状态
kubectl get pod --all-namespaces
# 获得所有的pod的命名空间,包括k8s自己的一些pod
CrashLoopBackOff状态表示创建失败,正在重试,5表示已经重试了5次(一般这个组件,过一会都能启动成功)
Pending状态,表示阻塞
如果反复出现CrashLoopBackOff代表硬件不够,增加CPU与内存资源即可
kubectl create -f kube-flannel.yml
# 安装flannel网络组件,是一个通信协议,用于pod与pod之间进行通信,kube-flannel.yml在kubernets-1.14中有
此时就变成Running状态了
复制[4.2.12 复制加入集群指令(Master)](#4.2.12 复制加入集群指令(Master))的指令至Node1和Node2即可成功加入主节点
kubectl get nodes
全是Ready即说明集群搭建成功了
查看所有令牌
kubeadm token list
[root@k8s-master ~]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
如果当前令牌查询出来为空,则说明token过期了,可以使用如下命令新建一个token
#如果过期可先执行此命令
kubeadm token create #重新生成token
#列出token
kubeadm token list | awk -F" " '{print $1}' |tail -n 1
# 执行结果如下
[root@k8s-master ~]# kubeadm token create
zj8q6t.3wlw9d3xnnflqjrv
[root@k8s-master ~]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
zj8q6t.3wlw9d3xnnflqjrv 23h 2021-11-19T15:01:59+08:00 authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
[root@k8s-master ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg perl5
[root@k8s-master ~]# kubeadm token list | awk -F" " '{print $1}' |tail -n 1
zj8q6t.3wlw9d3xnnflqjrv
查出后去子节点执行
kubeadm join 192.168.8.64:6443 --token zj8q6t.3wlw9d3xnnflqjrv --discovery-token-unsafe-skip-ca-verification
–discovery-token-unsafe-skip-ca-verification表示对token不做安全性校验
cd /usr/local/k8s-install/kubernetes-1.14
kubectl apply -f kubernetes-dashboard.yaml
kubectl apply -f admin-role.yaml
kubectl apply -f kubernetes-dashboard-admin.rbac.yaml
kubectl -n kube-system get svc
此时外部可通过http://192.168.8.64:32000 访问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。