1. 基础环境

 基础环境基于centos7共包含3个节点,1个k8s-master节点,2个k8s-node节点,如下表所示。

节点地址服务
k8s-master
192.168.40.200
api-server scheduler controller-manager docker kubelet kube-proxy
k8s-node1
192.168.40.201
docker kubelet kube-proxy
k8s-node2
192.168.40.202
docker kubelet kube-proxy
配置kubernetes源kubernetes.repo。
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

配置docker源docker.repo。

[docker-repo]
name=Docker Repository
baseurl=http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7
enabled=1
gpgcheck=0

所有安装kubernetes和docker。

yum install -y docker
yum install -y  kubelet kubeadm kubectl kubernetes-cni

设置docker和kubelet开机自启动,kubelet如果无法启动,不用理会,待安装完成后,会自动开启。

systemctl enable docker
systemctl start docker
systemctl enable kubelet
systemctl start kubelet

需要注意的是,两个配置文件中的cgroupdriver需要保持一致,同时为systemd或者cgroupfs。

cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
cat /lib/systemd/system/docker.service
ExecStart=--exec-opt native.cgroupdriver=cgroupfs

配置镜像加速(使用阿里云或者DaoCloud的加速器)。

cat /etc/docker/daemon.json
{"registry-mirrors": ["加速地址"]}

配置完成后重启docker。

systemctl restart docker

2. k8s-master安装

通过kubeadm初始化,api地址为k8s-master网卡的地址,pod地址为用户自定义的地址。

kubeadm init --kubernetes-version=v1.10.0 --apiserver-advertise-address 192.168.40.200 --pod-network-cidr=10.244.0.0/16 

需要注意的是,如果节点本身能够科学上网,则上述步骤能够顺利执行完成master节点的安装,但是如果不能,则只能通过拉取需要的镜像来完成安装,这里选择去阿里云的已有镜像仓库去下载,缺点就是版本不全,如果没有所需的镜像,只能想办法实现科学上网了。

以kubernetes1.10.0为例,其所需要的各个镜像如下表格所示。

镜像名称镜像版本
k8s.gcr.io/kube-proxy-amd64 v1.10.0
k8s.gcr.io/kube-scheduler-amd64v1.10.0
k8s.gcr.io/kube-controller-manager-amd64v1.10.0
k8s.gcr.io/kube-apiserver-amd64v1.10.0
k8s.gcr.io/etcd-amd643.1.12
k8s.gcr.io/kubernetes-dashboard-amd64v1.8.3
k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd641.14.8
k8s.gcr.io/k8s-dns-sidecar-amd641.14.8
k8s.gcr.io/k8s-dns-kube-dns-amd641.14.8
k8s.gcr.io/pause-amd643.1

切换到普通用户,执行下列操作。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

安装flannel网络。

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

3. k8s-node安装

将节点k8s-node1和k8s-node2加入到集群中即可完成部署。

kubeadm join 192.168.40.200:6443 --token dszd14.a47ksga6lhhxyxte --discovery-token-ca-cert-hash sha256:83b8cd0a9b996dedc6fb0a755ba9636668b49c8c8da9ae1202bc2b3241f538a4

4. k8s集群验证

执行kubectl get nodes验证节点状态。


执行kubectl get pod --all-namespaces查看所有的pod状态。


Logo

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

更多推荐