k8s搭建

一、各节点组件图

二、环境准备

ip地址 | 节点角色 | 处理器| 内存|主机名
---|------|------|------|------|------|---
10.0.0.11 | master | >=2c |>=2G|master
10.0.0.11 | node01 | >=2c |>=2G|node01
10.0.0.11 | node02 | >=2c |>=2G|node02

三、系统初始化

1.1 配置主机名添加hosts解析

cat <<EOF >>/etc/hosts

10.10.10.10 master

10.10.10.11 node01

10.10.10.12 node02

EOF

1.2 关闭防火墙、selinux

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

1.3 配置内核参数,将桥接的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

1.4 配置国内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

1.5 配置国内kubernetes源

cat <<EOF > /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

EOF

1.6 配置docker源

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

四、安装软件

1.1 配置不检查swap

vim  /etc/sysconfig/kubelet 
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
KUBE_PROXY_MODE=ipvs #让集群支持ipvs
ip_vs,ip_vs_rr,ip_vs_wrr,ip_vs_sh,nf_conntrack_ipv4 #支持ipvs需要的模块

1.2 安装相关软件

yum install docker-ce-18.06.1.ce-3.el7 kubelet-1.14.2-0 kubeadm-1.14.2-0 kubectl-1.14.2-0

注:kubectl为aipserver的客户端,nodes节点可不用安装

五、部署master节点

1.1 初始化集群

kubeadm init --kubernetes-version=1.14.2 
--apiserver-advertise-address=10.0.0.11 
--image-repository registry.aliyuncs.com/google_containers 
--service-cidr=10.96.0.0/12 
--pod-network-cidr=10.244.0.0/16
--ignore-preflight-errors="Swap"

记录生成的最后部分内容,此内容需要在其它节点加入Kubernetes集群时执行。

kubeadm join 10.0.0.11:6443 --token kekvgu.nw1n76h84f4camj6 

--discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e

1.2 配置kubectl工具

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

kubectl get nodes

kubectl get cs

1.3 部署部署flannel网络

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

可访问github查看详情

六、部署node节点

执行如下命令,使所有node节点加入Kubernetes集群

kubeadm join 10.0.0.11:6443 --token dmfg5u.q6afsr7h0k47oxvo     
--discovery-token-ca-cert-hash sha256:64361c8c1f11094bfbe643c6cf924d81f14f2f187eeb17102452817e5077b2e0 --ignore-preflight-errors="Swap"

此命令为集群初始化时(kubeadm init)返回结果中的内容。

七、集群状态查看

  • 查看组件信息
kubectl get cs
  • 查看节点信息
kubectl get nodes
  • 查询是否运行系统名称空间的pod
get pods -n kube-system -o wide
  • 查询系统的所有名称空间
kubectl get ns
原文地址:https://www.cnblogs.com/jiangjunwang/p/12892304.html