您的位置:首页 > 其它

Kubeadm部署K8s工作集群

2020-06-06 07:21 363 查看

一、规划

本次测试集群使用1台master控制节点,2个node工作节点。
|

IP 角色/职责
192.168.1.10 master/ 对内提供工作流的调度和控制
192.168.1.11 node1/承载k8s运行的实际任务(奴隶/工作者)
192.168.1.12 node2/承载k8s运行的实际任务(奴隶/工作者)

二、准备工作

主机名解析:

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
master 192.168.1.10
node1  192.168.1.11
node2  192.168.1.11

三、安装Docker服务

在master、Node节点上执行:

yum install -y yum-utils device-mapper-persistent-data lvm2
##获取docker镜像源repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
##创建更新系统和安装docker
yum update -y && yum -y install docker-ce
#配置daemon.json镜像加速
cat >/etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdr=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF

###重启docker服务
systemctl daemon-reload && systemctl restart docker && systemctl enable docker

四、系统基础配置

在Master、Node节点执行。

###关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
###内核参数

cat <<EOF > /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p
####关闭交换分区
sed -i '/swap/s/^/#/' /etc/fstab
swapoff -a

五、k8s安装和初始化节点

在Master、Node节点上执行

cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
enable=1
EOF

yum在Master、Node节点安装kubeadm、kubelet、kubectl

yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
systemctl enable kubelet.service

在Master节点操作初始化节点

kubeadm config print init-defaults > kubeadm-config.yaml
vi kubeadm-config.yaml
///修改如下内容:
advertiseAddress: 192.168.1.10  //Master IP
imageRepository: registry.aliyuncs.com/google_containers
kubernetesVersion: v1.15.1
podSubnet: "10.244.0.0/16"

开始初始化节点Master操作

kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log

查看Master 所需执行内容和Node节点的秘钥

查看Node节点状态

kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   NoReady	<none>	 21h   v1.15.1
node1    NoReady    <none>   21h   v1.15.1
node2    NoReady    <none>   21h   v1.15.1

因缺少flannel网络,安装即可

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f kube-flannel.yml
###休息3分钟再看
kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   21h   v1.15.1
node1    Ready    <none>   21h   v1.15.1
node2    Ready    <none>   21h   v1.15.1

六、总结

1.本次k8s严格按照流程安装不会出现任何问题。
2.常用命令:
kubectl get cs ///查看集群master节点工作状态
kubectl get csr ///查看待认证节点
kubectl get pod //查看pod信息
kubectl logs [pod] //查看日志
kubectl describe ///pod 的运行信息

还请各位持续关注,后续推出二进制安装方案。Jenkins流水线构造等。实现devops至高无上的运维体系。。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: