kubernetes 搭建_docker集群管理「建议收藏」

kubernetes 搭建_docker集群管理「建议收藏」搭建kubernetes集群

搭建kubernetes集群

[ ] 前置知识点
目前生产部署Kubernetes集群主要有两种方式:
•kubeadm
Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。
•二进制包
从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群(这种方法在社区里面叫做hardway,适用于学习)。
这里采用kubeadm搭建集群。
kubeadm工具功能:
•kubeadm init:初始化一个Master节点
•kubeadm join:将工作节点加入集群
•kubeadm upgrade:升级K8s版本
•kubeadm token:管理 kubeadm join 使用的令牌
•kubeadm reset:清空 kubeadm init 或者 kubeadm join 对主机所做的任何更改
•kubeadm version:打印 kubeadm 版本
•kubeadm alpha:预览可用的新功能

  • 准备环境建议
    服务器要求:
    •建议最小硬件配置:2核CPU、2G内存、30G硬盘
    •服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,需要提前下载对应镜像并导入节点
  • 环境准备(三台主机)
IP:192.168.47.128 主机名:k8s-master 系统:centos 7.6.1810 (Core)

IP:192.168.47.132 主机名:k8s-node1  系统:centos 7.6.1810 (Core)

IP:192.168.47.134 主机名:k8s-node1  系统:centos 7.6.1810 (Core)
  • 三台主机全部关闭防火墙
systemctl stop firewalld

systemctl disable firewalld
  • 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config 

setenforce 0
  • 关闭swap
swapoff -a  $ 临时

vi /etc/fstab  $ 永久 把加载swap分区的那行记录注释掉即可(推荐做法)
即注释掉下面这行即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N1REBiUw-1640765635850)(BFF3BB4D55CC4072AE9729FBC8B43CBA)]

  • 添加主机名与IP对应关系(三台主机都执行)
cat >> /etc/hosts << EOF
192.168.47.128 k8s-master
192.168.47.132 k8s-node1
192.168.47.134 k8s-node2
EOF

设置 192.168.47.128主机名

# hostnamectl set-hostname  k8s-master

设置 192.168.47.132主机名

# hostnamectl set-hostname  k8s-node1

设置 192.168.47.134主机名

# hostnamectl set-hostname  k8s-node2
  • 将桥接的IPv4流量传递到iptables的链(三台主机都执行):
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# sysctl --system
  • 所有节点安装Docker/kubeadm/kubelet
    Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。

  • 安装docker

$ 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
Docker version 18.06.1-ce, build e68fc7a
  • 添加阿里云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
  • 安装kubeadm,kubelet,kubectl
$ yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
$ systemctl enable kubelet
  • 初始化Master节点

在192.168.47.128(Master)执行。

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

由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。

使用kubectl工具:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl get nodes
  • 将node1,node2加入集群

在192.168.47.132/134(Node)执行。

向集群添加新节点,在master上执行(kubeadm token create –print-join-command生成token)命令:

    kubeadm join 192.168.47.128:6443 --token jt7rdm.q32kdqm1g9ldc3y1     --discovery-token-ca-cert-hash sha256:b612d55a54484a820a00baa8fabc2daf12c8413ac1c1fa01077304c96ecce019
  • 安装Pod网络插件(CNI)
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
  • 测试kubernetes集群

在Kubernetes集群中创建一个pod,验证是否正常运行(我是在master上创建的):

$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pod,svc

访问地址:http://NodeIP:Port
(kubectl get svc获得端口号)

  • 部署 Dashboard(在master上部署)
$ wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard
$ kubectl apply -f kubernetes-dashboard.yaml

访问地址:https://192.168.47.128:30001

创建service account并绑定默认cluster-admin管理员集群角色:

$ 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}')

使用输出的token登录Dashboard。

获取token的命令:

kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')

今天的文章kubernetes 搭建_docker集群管理「建议收藏」分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58587.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注