k8s集群安装部署(简洁版-无详细服务作用介绍)

目录

k8s集群安装部署(简洁版-无详细服务作用介绍)

一: 环境说明

二:初始化环境

三  安装k8s

监控部分


一: 环境说明

主机名 ip 说明

master.xyh.com  192.168.10.200 master

node01.xyh.com 192.168.10.201 node01

node02.xyh.com 192.168.10.202 node02

二:初始化环境

配置主机ip,设置主机名;关闭防火墙,selinux;关闭swap;开启转发功能

hostnamectl set-hostname  master.xyh.com

systemctl stop firewalld && systemctl disable firewalld

swapoff  -a

 #检查/etc/fstab没有默认开启swap

#设置iptable转发以及内生网桥功能

cat <<EOF > /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

EOF

modprobe br_netfilter

sysctl  -p /etc/sysctl.d/k8s.conf

setenforce 0 ; sed i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config ; sestatus

安装运行时docker-ce

#安装所需依赖

yum install yum‐utils device‐mapper‐persistent‐data lvm2 -y

#添加docker-ce yum仓库,使用清华源

#yum‐config‐manager ‐‐add‐repo https://download.docker.com/linux/centos/docker‐ce.repo

yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

#安装docker-ce

#创建docker配置目录,并设置daemon文件

mkdir -p /etc/docker ;

cat > /etc/docker/daemon.json << EOF

{"exec-opts": ["native.cgroupdriver=systemd"],

"insecure-registries": ["0.0.0.0"]

}

EOF

#加载sys配置,启动docker

mkdir  -p /etc/systemd/system/docker.service.d/

systemctl  daemon-reload

systemctl  restart docker

systemctl  enable docker

三  安装k8s

安装kubeadm ,kubelet 和kubectl

您需要在每台机器上都安装以下的软件包:

 kubeadm: 用来初始化集群的指令。

 kubelet: 在集群中的每个节点上用来启动 pod 和 container 等。

 kubectl: 用来与集群通信的命令行工具

#配置kubernetes yum repo源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

#执行下载

yum install kubeadm kubectl kubelet -y

 (kubelet要设置开机自启动)

K8s Master节点配置

准备镜像文件

#查看kubeadm版本

kubeadm version

#查看用到的镜像

kubeadm config images list

kubeadm init    --image-repository registry.aliyuncs.com/google_containers   --service-cidr=10.233.0.0/16  --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

###后期增加节点:

 ### kubeadm join 192.168.10.200:6443 --token ksfh08.491n64xinf4cwpij  --discovery-token-ca-cert-hash sha256:1320112d6bb57d3cd1005858c9008b49989c941b17dd78af7aa751c0c54a5854

#$#  kubeadm  token list 查看

 #$# 可以通过 openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'     查看到

###参考 https://blog.csdn.net/weixin_44256791/article/details/85256551

#查看命名空间 ok

kubectl get ns

部署网络插件

可用网络插件列表:https://kubernetes.io/docs/concepts/cluster-administration/addons/

Calico 插件安装:https://docs.projectcalico.org/v3.11/getting-started/kubernetes/

#以 calico为例子

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

##查看确认

kubectl get pods -A 或者 kubectl get pod -n kube-system

#检查节点已经ready

kubectl  get node

##取消master的taint

kubectl taint nodes --all node-role.kubernetes.io/master-

此时可以进行创建pod测试了

增加节点

其他节点已经初始化好了环境并且安装了必要的包

再其他节点执行

kubeadm  join 192.168.10.200:6443 --token ksfh08.491n64xinf4cwpij --discovery-token-ca-cert-hash sha256:1320112d6bb57d3cd1005858c9008b49989c941b17dd78af7aa751c0c54a5854

等待一会在主节点执行kubectl get node 会看到节点都变成ready状态了

重新定义roles角色

直接把节点打上label标签

kubectl  label node node01.xyh.com node-role.kubernetes.io/node

测试部署应用:

  略

======================================================

监控部分

使用https://github.com/prometheus-operator/kube-prometheus/  项目

解压到master节点,进入解压目录后执行如下命令:

kubectl create -f manifests/setup kubectl create -f manifests/

until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done

等待服务创建完成

 kubectl  get pod -n monitoring  -owide

修改svc端口,让外部可以访问

prometheus 端口 30090

kubectl  edit svc prometheus-k8s -n monitoring

填入 container_fs_usage_bytes 并执行 ,有数据返回即可

grafana对外端口修改  30300

kubectl  edit svc grafana -n monitoring

最终dashboard视图

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐