Linux傻瓜式安装k8s
目录1. 安装K8S1.1 基础环境配置(所有节点全部执行)1.1.1关闭防火墙1.1.2 关闭 selinux1.1.3 关闭swap1.1.4设置主机名称1.1.5修改hosts(注意:修改自己的内网ip)1.1.6将桥接的 IPv4 流量传递到 iptables 的链1.1.7时间同步1.2 安装docer(所有节点全部执行)1.3安装kubeadm、kubelet 、kubectl(所有节
目录
1.1.6 将桥接的 IPv4 流量传递到 iptables 的链
1.3 安装kubeadm、kubelet 、 kubectl(所有节点全部执行)
1.3.3 安装 kubeadm, kubelet 和 kubectl
1.4.1 初始化master节点(注意:10.0.20.8修改为自己的master节点ip,其他忽动)
1. 安装K8S
我使用的是腾讯云的轻量级云服务器,操作系统都重置为Centos7.6,集群走内部网络
服务器配置为:
名称 | CPU | 内存 | 硬盘 |
---|---|---|---|
master | 2核 | 4GB | 60GB |
node1 | 2核 | 4GB | 60GB |
node2 | 2核 | 2GB | 50GB |
只要跟我环境一样,全场无脑执行命令即可,需要修改个人配置的地方我会标注,没有特别标注的单元无脑执行即可
1.1 基础环境配置(所有节点全部执行)
1.1.1 关闭防火墙
systemctl stop firewalld
1.1.2 关闭 selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
1.1.3 关闭swap
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p
1.1.4 设置主机名称
1.1.4.1 master节点
hostnamectl set-hostname k8s-master
1.1.4.2 node1节点
hostnamectl set-hostname k8s-node1
1.1.4.3 node2节点
hostnamectl set-hostname k8s-node2
1.1.5 修改hosts(注意:修改自己的内网ip)
vim /etc/hosts
在最下方添加内网ip映射
10.0.20.8 k8s-master
10.0.20.2 k8s-node1
10.0.24.14 k8s-node2
1.1.6 将桥接的 IPv4 流量传递到 iptables 的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 刷新生效
1.1.7 时间同步
yum install ntpdate -y
ntpdate time.windows.com
1.2 安装docer(所有节点全部执行)
下载dockerd源有可能比较慢,耐心等待一下
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version
1.3 安装kubeadm、kubelet 、 kubectl(所有节点全部执行)
1.3.1 添加阿里云 YUM 软件源
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF
1.3.2 添加 Kubernetes yum 源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
1.3.3 安装 kubeadm, kubelet 和 kubectl
yum install -y kubelet-1.17.3 kubectl-1.17.3 kubeadm-1.17.3
systemctl enable kubelet
1.4 启动k8s(master节点执行)
1.4.1 初始化master节点(注意:10.0.20.8修改为自己的master节点ip,其他忽动)
kubeadm init \
--apiserver-advertise-address=10.0.20.8 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.3 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
初始化完成后会生成一段代码,这段代码在子节点加入的时候需要执行,如下图
1.4.2 使用 kubectl 工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
1.4.3 检查master节点
kubectl get nodes
如下图则代表master节点已启动
1.4.4 安装pod网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
1.4.5 如果token过期重新获取token
执行命令生成token
kubeadm token generate
根据token输出添加命令,create后面带刚才生成的token文件
kubeadm token create ins9ct.n3vpfy86dsjglmxy --print-join-command --ttl=0
如此便获得新的加入命令了,拿去子节点执行
1.5 集群配置
1.5.1 子节点加入集群(子节点执行)
这时候就用到1.4.1单元中生成的那段代码了,我的如下
kubeadm join 10.0.20.8:6443 --token 9z52d6.eq693qimjgc1znu4 \
--discovery-token-ca-cert-hash sha256:ce4e0694eadb2c27255d225facdb04fc2da19fbbf432e779f0070f5b3a40a67b
哪个子节点需要加入集群就在哪个子节点执行,然后如下图等待完成
如果提示下图错误,有可能是token过期了,按照1.4.5单元的操作重新获取token然后执行加入命令即可
如果重新生成token还不可以就检查是部署防火墙和开放端口的问题,检查master节点是否开启了6443
1.5.2 检查节点是否加入集群 (master节点执行)
kubectl get nodes
如下图,两个node节点都加入了集群即为成功
1.5.3 创建pod (master节点执行)
查询现有的pod:
kubectl get pod,svc
创建一个新的nginx的pod
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
如下图,新建了一个pod,创建成功
既然部署成功了,我们需要测试访问一下我们的nginx,80对外映射的端口为32617,根据ip再找到节点,外部访问就是节点ip+32617端口,如果是云服务器一定要设置防火墙端口的开放。
如下图即访问成功,nginx部署成功
2 安装dashboard(master节点)
2.1 下载dashboard文件
curl -o kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
如果下载失败,可以使用下面的链接下载,然后上传到服务器中
链接: https://pan.baidu.com/s/1nFN8blWpR3pKGAgpHDd_jg?pwd=3dg9 提取码: 3dg9
2.2 安装
kubectl apply -f kubernetes-dashboard.yaml
2.3 查看安装节点
执行命令,查看dashboard在哪个节点上:
kubectl get pods -n kube-system -o wide
根据结果可以看到dashboard在node1的节点上,对外的端口为:31080,这个是配置文件固定好的
2.4 查看web页面
根据节点和端口进行访问
https://节点ip:31080/
使用谷歌浏览器访问会提示受限
点击高级选择继续前往即可进入页面,页面如下
2.5 登陆dashboard(master节点)
登陆的话是选择令牌的方式,我们接下来先获取令牌
2.5.1 生成token文件
执行命令:
kubectl get secret -n kube-system|grep kubernetes-dashboard-token
得到如下图token文件
2.5.2 获取token
根据上面生成的token文件,获取token,将上面获取的token文件替换命令
kubectl describe secret token文件名 -n kube-system
如下图得到token
2.5.3 登录
粘贴token 到登录页的第二项令牌处
点击登录,就进入管理页面了
其他的可以自行探索
更多推荐
所有评论(0)