Kubernetes部署及Dashboard部署

本文记录了在2019年7月2日使用Kubernetes v1.15.0进行部署的过程,包括安装环境准备,如设置CentOS7系统、配置主机名、关闭防火墙等;接着详细阐述了如何部署master和node节点,以及使用flannel网络;最后,介绍了部署Dashboard的步骤,包括修改yaml文件、部署和访问Dashboard,特别指出可能遇到的访问问题和证书修改。整个过程中强调了源的配置对部署成功的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间记录:2019-7-2
Kubernetes(K8s) 是一个开源系统,用于自动化容器化应用程序的部署,扩展和管理。
该安装正对于v1.15.0,其余版本可能会出现问题
官方文档
笔者安装部署遇到了一些问题在这里记录下。
安装参考

安装环境准备:

虚拟机三台:192.168.141.129、192.168.141.130、192.168.131
系统:centos7,每个处理器分配至少2个
设置主机名

hostnamectl set-hostname master/node1/node2
对应着三台机器的主机名

编辑host文件,添加

vi /etc/hosts
------------------------------------------------------------------------------------------------------------------------------
10.10.10.10 master
10.10.10.11 node1
10.10.10.12 node2

关闭防火墙、selinux和swap

systemctl stop firewalld
systemctl disable firewalld

setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

配置内核参数,将桥接的IPv4流量传递到iptables的链

添加 /etc/sysctl.d/k8s.conf 内容如下
------------------------------------------------------------------------------------------------------------------------------
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

配置国内yum源

yum install -y wget

mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache

配置国内Kubernetes源

添加 /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

配置 docker 源

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

安装docker、kubeadm、kubelet、kubectl

docker安装

yum install -y docker-ce-18.06.1.ce-3.el7
systemctl enable docker 
systemctl start docker
yum install -y kubelet-1.15.0-0  kubeadm-1.15.0-0 kubectl-1.15.0
systemctl enable kubelet

部署master 节点

在master进行Kubernetes集群初始化

kubeadm init --kubernetes-version=1.15.0 \
--apiserver-advertise-address=192.168.141.129 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

记录如下的内容,后续使用

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

kubeadm join 192.168.141.129:6443 --token i9dxt3.39y7sefjhsf83hnj \
    --discovery-token-ca-cert-hash sha256:a7c807d699a3f3895f959f8d5c393a6ab6e9ce70ed3713d8d491f0007c7a555d 

配置kubectl工具

mkdir -p /root/.kube
cp /etc/kubernetes/admin.conf /root/.kube/config
kubectl get nodes
kubectl get cs

部署flannel网络

kubectl apply -f /home/kube-flannel.yml

注意:这里我访问不了,故将文件放置到本地然后指定路径。(安装参考中的路径)

部署node节点

所有node节点加入Kubernetes集群

kubeadm join 192.168.141.129:6443 --token i9dxt3.39y7sefjhsf83hnj   
  --discovery-token-ca-cert-hash sha256:a7c807d699a3f3895f959f8d5c393a6ab6e9ce70ed3713d8d491f0007c7a555d 

完成以上即完成了所有的部署

部署Dashboard

创建Dashboard的yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

修改内容

sed -i 's/k8s.gcr.io/loveone/g' kubernetes-dashboard.yaml
sed -i '/targetPort:/a\ \ \ \ \ \ nodePort: 30001\n\ \ type: NodePort' kubernetes-dashboard.yaml

注意这里使用的yaml可以在发布版的src/… 目录下找到修改镜像位置为

 registry.cn-shanghai.aliyuncs.com/zqt/dashboard:1.10.0 
 在112行左右

这里的镜像可以自行到阿里云上查找,找到需要的镜像后,复制 镜像的地址:版本号即可

部署Dashboard

kubectl create -f kubernetes-dashboard.yaml

查看访问Dashboard的认证令牌

kubectl create serviceaccount  dashboard-admin -n kube-system
kubectl create clusterrolebinding  dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

浏览器输入Dashboard访问地址:https://192.168.141.129:30001

注意这里在chrom中会访问不了,修改证书

mkdir key && cd key
#生成证书
openssl genrsa -out dashboard.key 2048 
openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.246.200'
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt 
#删除原有的证书secret
kubectl delete secret kubernetes-dashboard-certs -n kube-system
#创建新的证书secret
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kube-system
#查看pod
kubectl get pod -n kube-system
#重启pod
kubectl delete pod <pod name> -n kube-system

总结:主要是源的问题,大部分的源都需要自行指定

时间记录:2019-7-2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值