01-使用kubeadm部署Kubernetes集群

部署过程参考赵班长的文章:
http://k8s.unixhot.com/kubernetes/kubernetes-kubeadm.html

第一章 实验环境准备

主机名 IP地址(NAT) 最低配置 描述
linux-node1.linuxhot.com 1CPU/1G内存 eth0:192.168.56.11 Kubernets Master/Etcd节点
linux-node2.linuxhot.com 1CPU/1G内存 eth0:192.168.56.12 Kubernets Master/Etcd节点
linux-node3.linuxhot.com 1CPU/1G内存 eth0:192.168.56.13 Kubernets Master/Etcd节点
Service网段 10.1.0.0/16
Pod网段 10.2.0.0/16

第二章 部署Docker和kubeadm

2.1 使用国内源

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] /etc/yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.2 安装指定的Docker版本

[[email protected] ~]# yum -y install docker-ce-18.06.1.ce-3.el7

2.3 启动后台进程

[[email protected] ~]# systemctl enable docker && systemctl start docker

2.4 设置kubernetes YUM仓库

[[email protected] ~]# cat > /etc/yum.repos.d/kubernetes.repo <

2.5 安装软件包

[[email protected] ~]# yum install -y kubelet-1.13.3 kubeadm-1.13.3 kubectl-1.13.3 ipvsadm kubernetes-cni-0.6.0

2.6 配置kubelet忽略禁止使用swap

[[email protected] ~]# echo 'KUBELET_EXTRA_ARGS="--fail-swap-on=false"' > /etc/sysconfig/kubelet
[[email protected] ~]# cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
[[email protected] ~]# swapoff -a
[[email protected] ~]# sed -i.bak  '/swap/d' /etc/fstab 

2.7 设置内核转发

[[email protected] ~]# cat < /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

使配置生效

[[email protected] ~]# sysctl --system

2.8 启动kubelete并设置开机启动

[[email protected] ~]# systemctl enable kubelet && systemctl start kubelet

第三章 初始化集群部署Master

3.1 执行初始化操作

[[email protected] ~]# kubeadm init \
--apiserver-advertise-address=192.168.56.11 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.13.3 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.2.0.0/16 \
--service-dns-domain=cluster.local \
--ignore-preflight-errors=Swap \
--ignore-preflight-errors=NumCPU

3.2 为kubectl准备kubeconfig文件

[[email protected] ~]# mkdir -p $HOME/.kube
[[email protected] ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[[email protected] ~]# chown $(id -u):$(id -g) $HOME/.kube/config

3.3 使用kubectl命令查看组建状态

[[email protected] ~]# kubectl get cs
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok                   
controller-manager   Healthy   ok                   
etcd-0               Healthy   {"health": "true"}   

3.4 使用kubectl获取Node信息

[[email protected] ~]# kubectl get node
NAME                       STATUS     ROLES    AGE   VERSION
linux-node1.linuxhot.com   NotReady   master   83s   v1.13.3

第四章 部署网络插件Canal

4.1 部署canal网络插件

[[email protected] ~]# kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal/rbac.yaml
[[email protected] ~]# kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal/canal.yaml

4.2 查看启动的Pod

稍等一会,等待所有的Pod状态都变成running


等所有的Pod状态都变成running之后再次查看Node,会发现节点变成了Ready状态


第五章 部署Node节点

5.1 在Master节点输出增加节点的命令

5.2 在Node节点执行

5.3 查看所有节点

5.4 给Node节点添加Roles标签

第六章 测试Kubernetes集群

6.1 创建一个单Pod的Nginx应用

6.2 查看Pod详细信息

6.3 测试Nginx访问

6.4 测试扩容

6.5 为Nginx增加Service

6.6 测试Service的VIP

6.7 测试NodePort外部访问

第七章 使用IPVS进行负载均衡

7.1 所有节点启动ipvs模块

7.2 修改kube-proxy的配置

7.3 批量删除并重建kube-proxy

7.4 测试ipvs

你可能感兴趣的:(01-使用kubeadm部署Kubernetes集群)