当前位置:   article > 正文

Kubernetes——Kubernetes1.14的安装_kubernets安装签发证书 百度网盘

kubernets安装签发证书 百度网盘

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.64Master
192.168.8.65Node1
192.168.8.66Node2

注意:搭建的机器CPU需要2核以上,否则无法安装k8s,内存最好2GB以上,这个暂时没测试出有硬性要求

1.2.1 配置服务器免密操作
1.2.1.1 Master服务器
1.2.1.1.1 生成公钥与私钥对

这一步没有什么特殊设置的话,一路默认回车下一步即可

ssh-keygen -t rsa
  • 1
在这里插入图片描述 ###### 1.2.1.1.2 复制公钥 > 将本机的公钥复制到远程机器的authorized_keys文件中,此步骤,有几台服务器,就操作几次,最好本机也操作一次

调用格式如下

ssh-copy-id 【远程账户名称】@【远程ip】

ssh-copy-id root@192.168.8.64
  • 1
ssh-copy-id root@192.168.8.65
  • 1
ssh-copy-id root@192.168.8.66
  • 1
1.2.1.2 其他服务器的操作

都按照第一台服务器进行操作

1.2.1.3 测试

测试一下是否是不需要密码就可以登陆了
调用格式如下
ssh 【远程账户名称】@【远程ip】

ssh root@192.168.8.64
exit
  • 1
  • 2
ssh root@192.168.8.65
exit
  • 1
  • 2
ssh root@192.168.8.66
exit
  • 1
  • 2
1.2.2、设置主机名与时区(Master、Node)

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
1.2.3、添加hosts网络主机配置(Master、Node1、Node2)
echo "192.168.8.64 master" > /etc/hosts
  • 1
echo "192.168.8.65 node1" > /etc/hosts
  • 1
echo "192.168.8.66 node2" > /etc/hosts
  • 1
1.2.4、关闭防火墙,生产环境跳过这一步(Master、Node1、Node2)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  • 1
setenforce 0
  • 1
systemctl disable firewalld
  • 1
systemctl stop firewalld
  • 1
1.2.5 将镜像包上传至每个节点(Master、Node1、Node2)
mkdir -p /usr/local/k8s-install
  • 1
cd /usr/local/k8s-install
  • 1
4.2.6 安装Docker(Master、Node1、Node2)
tar -zxvf docker-ce-18.09.tar.gz
  • 1
cd docker 
  • 1
yum localinstall -y *.rpm
  • 1
systemctl start docker
  • 1
systemctl enable docker
  • 1
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
  • 1
  • 2
  • 3
  • 4

如果不是cgroupfs,执行下列语句

cat << EOF > /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=cgroupfs"]
}
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
systemctl daemon-reload && systemctl restart docker
  • 1
1.2.8 安装kubeadm

kubeadm是集群部署工具

cd /usr/local/k8s-install/kubernetes-1.14
  • 1
tar -zxvf kube114-rpm.tar.gz
  • 1
cd kube114-rpm
  • 1
yum localinstall -y *.rpm
  • 1
1.2.9 关闭交换区
swapoff -a
  • 1
vi /etc/fstab 
  • 1
78BFFEB0-FBBE-4702-ACBE-373E3CF4CEDA
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
  • 1
  • 2
  • 3
  • 4
sysctl --system
  • 1
1.2.10 通过镜像安装k8s(Master,Node1,Node2)
cd /usr/local/k8s-install/kubernetes-1.14
  • 1
docker load -i k8s-114-images.tar.gz
  • 1
docker load -i flannel-dashboard.tar.gz
  • 1

查看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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
1.2.11 主服务器配置(Master)
kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16
  • 1

执行完以后,会有如下提示,执行他:

2F4522FD-D6A7-4B22-8570-FE1B1E29C99D
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 1
  • 2
  • 3

admin.conf是集群的核心文件,包含了当前集群的安全授权数据以及集群自身的信息

1.2.12 复制加入集群指令(Master)

在[1.2.11 主服务器配置(Master)](#1.2.11 主服务器配置(Master))中的输出结尾有这么一段话

image-20211118121611353

复制->粘贴至txt文档中,一会再使用

1.2.13 解决状态异常问题(Master)
kubectl get nodes
#查看所有的Nodes状态
  • 1
  • 2
image-20211118122821718
kubectl get pod --all-namespaces
# 获得所有的pod的命名空间,包括k8s自己的一些pod
  • 1
  • 2
image-20211118123041345

CrashLoopBackOff状态表示创建失败,正在重试,5表示已经重试了5次(一般这个组件,过一会都能启动成功)

Pending状态,表示阻塞

如果反复出现CrashLoopBackOff代表硬件不够,增加CPU与内存资源即可

kubectl create -f kube-flannel.yml
# 安装flannel网络组件,是一个通信协议,用于pod与pod之间进行通信,kube-flannel.yml在kubernets-1.14中有
  • 1
  • 2
image-20211118142539792

此时就变成Running状态了

1.2.14 子节点加入主节点(Node1,Node2)

复制[4.2.12 复制加入集群指令(Master)](#4.2.12 复制加入集群指令(Master))的指令至Node1和Node2即可成功加入主节点

1.2.15 查看集群状态(Master)
kubectl get nodes
  • 1

image-20211118143418035

全是Ready即说明集群搭建成功了

1.2.15 如果忘记了加入指令怎么办(Master)

查看所有令牌

kubeadm token list

[root@k8s-master ~]# kubeadm token list
TOKEN     TTL       EXPIRES   USAGES    DESCRIPTION   EXTRA GROUPS
  • 1
  • 2
  • 3
  • 4

如果当前令牌查询出来为空,则说明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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

查出后去子节点执行

kubeadm join 192.168.8.64:6443 --token zj8q6t.3wlw9d3xnnflqjrv --discovery-token-unsafe-skip-ca-verification
  • 1

–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
  • 1
  • 2
  • 3
  • 4
  • 5

此时外部可通过http://192.168.8.64:32000 访问

Kubernetes其他文档列表

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/977179
推荐阅读
相关标签
  

闽ICP备14008679号