Kubernetes——Kubernetes1.14的安装
文章目录Kubernetes——Kubernetes的安装一、k8s的安装1.1、k8s的4种安装部署方式离线安装包下载地址1.2、安装前准备(使用kubeadmin通过离线镜像安装)1.2.1、准备集群服务器1.2.1 配置服务器免密操作1.2.1.1 Master服务器1.2.1.1.1 生成公钥与私钥对1.2.1.2 其他服务器的操作1.2.1.3 测试1.2.2、设置主机名与时区(Mast
文章目录
- Kubernetes——Kubernetes的安装
- 一、k8s的安装
- 1.1、k8s的4种安装部署方式
- 1.2、安装前准备(使用kubeadmin通过离线镜像安装)
- 1.2.1、准备集群服务器
- 1.2.1 配置服务器免密操作
- 1.2.2、设置主机名与时区(Master、Node)
- 1.2.3、添加hosts网络主机配置(Master、Node1、Node2)
- 1.2.4、关闭防火墙,生产环境跳过这一步(Master、Node1、Node2)
- 1.2.5 将镜像包上传至每个节点(Master、Node1、Node2)
- 4.2.6 安装Docker(Master、Node1、Node2)
- 1.2.7 确保从cgroups均在同一个从groupfs(Master、Node1、Node2)
- 1.2.8 安装kubeadm
- 1.2.9 关闭交换区
- 1.2.10 配置网桥
- 1.2.10 通过镜像安装k8s(Master,Node1,Node2)
- 1.2.11 主服务器配置(Master)
- 1.2.12 复制加入集群指令(Master)
- 1.2.13 解决状态异常问题(Master)
- 1.2.14 子节点加入主节点(Node1,Node2)
- 1.2.15 查看集群状态(Master)
- 1.2.15 如果忘记了加入指令怎么办(Master)
- 1.2.15 开启Web UI Dashboard
- Kubernetes其他文档列表
Kubernetes——Kubernetes的安装
一、k8s的安装
1.1、k8s的4种安装部署方式
-
使用kubeadmin通过离线镜像安装(推荐)
-
使用阿里公有云平台k8s(钞能力)
-
通过yum官方仓库安装上古版本(太古老,不太推荐)
-
二进制包的形式进行安装,kubeasz 【github】(不够安全)
离线安装包下载地址
链接: https://pan.baidu.com/s/19k01JgowPatiBPauoZi–g 密码: f88j
1.2、安装前准备(使用kubeadmin通过离线镜像安装)
1.2.1、准备集群服务器
节点IP | 节点角色 |
---|---|
192.168.8.64 | Master |
192.168.8.65 | Node1 |
192.168.8.66 | Node2 |
注意:搭建的机器CPU需要2核以上,否则无法安装k8s,内存最好2GB以上,这个暂时没测试出有硬性要求
1.2.1 配置服务器免密操作
1.2.1.1 Master服务器
1.2.1.1.1 生成公钥与私钥对
这一步没有什么特殊设置的话,一路默认回车下一步即可
ssh-keygen -t rsa
###### 1.2.1.1.2 复制公钥 > 将本机的公钥复制到远程机器的authorized_keys文件中,此步骤,有几台服务器,就操作几次,最好本机也操作一次
调用格式如下
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
1.2.1.2 其他服务器的操作
都按照第一台服务器进行操作
1.2.1.3 测试
测试一下是否是不需要密码就可以登陆了
调用格式如下
ssh 【远程账户名称】@【远程ip】
ssh root@192.168.8.64
exit
ssh root@192.168.8.65
exit
ssh root@192.168.8.66
exit
1.2.2、设置主机名与时区(Master、Node)
Master、Node1、Node2节点都需要执行
timedatectl set-timezone Asia/Shanghai
Master节点执行
hostnamectl set-hostname master
Node1执行
hostnamectl set-hostname k8s-node1
Node2执行
hostnamectl set-hostname k8s-node2
1.2.3、添加hosts网络主机配置(Master、Node1、Node2)
echo "192.168.8.64 master" > /etc/hosts
echo "192.168.8.65 node1" > /etc/hosts
echo "192.168.8.66 node2" > /etc/hosts
1.2.4、关闭防火墙,生产环境跳过这一步(Master、Node1、Node2)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
1.2.5 将镜像包上传至每个节点(Master、Node1、Node2)
mkdir -p /usr/local/k8s-install
cd /usr/local/k8s-install
4.2.6 安装Docker(Master、Node1、Node2)
tar -zxvf docker-ce-18.09.tar.gz
cd docker
yum localinstall -y *.rpm
systemctl start docker
systemctl enable docker
1.2.7 确保从cgroups均在同一个从groupfs(Master、Node1、Node2)
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
1.2.8 安装kubeadm
kubeadm是集群部署工具
cd /usr/local/k8s-install/kubernetes-1.14
tar -zxvf kube114-rpm.tar.gz
cd kube114-rpm
yum localinstall -y *.rpm
1.2.9 关闭交换区
swapoff -a
vi /etc/fstab
1.2.10 配置网桥
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
1.2.10 通过镜像安装k8s(Master,Node1,Node2)
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
1.2.11 主服务器配置(Master)
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.12 复制加入集群指令(Master)
在[1.2.11 主服务器配置(Master)](#1.2.11 主服务器配置(Master))中的输出结尾有这么一段话
复制
->粘贴
至txt文档中,一会再使用
1.2.13 解决状态异常问题(Master)
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状态了
1.2.14 子节点加入主节点(Node1,Node2)
复制[4.2.12 复制加入集群指令(Master)](#4.2.12 复制加入集群指令(Master))的指令至Node1和Node2即可成功加入主节点
1.2.15 查看集群状态(Master)
kubectl get nodes
全是Ready即说明集群搭建成功了
1.2.15 如果忘记了加入指令怎么办(Master)
查看所有令牌
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不做安全性校验
1.2.15 开启Web UI Dashboard
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 访问
Kubernetes其他文档列表
更多推荐
所有评论(0)