基础环境
- Centos 7+
- Kubeadm
- docker 1.13+
- kubernetes 1.15.4
前提
1. 安装 docker
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
systemctl enable docker
systemctl start docker
2. 关闭 swap分区 、防火墙 、selinux等
2.1 临时关闭swap 分区
swapoff -a
2.2 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.3 临时关闭selinux
setenforce 0
3. 准备下载源
wget https://raw.githubusercontent.com/xiliangMa/xiliangMa.github.io/master/kubernetes/k8s.repo -P /etc/yum.repos.d/
4. k8s.conf
wget https://raw.githubusercontent.com/xiliangMa/xiliangMa.github.io/master/kubernetes/k8s.conf -P /etc/sysctl.d/
操作步骤
1. 安装kubeadm kubelet kubectl
yum install kubelet-1.15.4 kubeadm-1.15.4 kubectl-1.15.4 -y
systemctl enable kubelet
systemctl start kubelet
2. 下载镜像
2.1
wget https://raw.githubusercontent.com/xiliangMa/xiliangMa.github.io/master/kubernetes/install/1.15.4/pull.sh
chmod +x pull.sh
./pull.sh
2.2 查看镜像
docker images | grep k8s.gcr.io
结果如下:
k8s.gcr.io/kube-proxy v1.15.4 171a8a0f4d0b 3 weeks ago 82.4 MB
k8s.gcr.io/kube-apiserver v1.15.4 8d42b9dd0d2f 3 weeks ago 207 MB
k8s.gcr.io/kube-controller-manager v1.15.4 6bd2df93e08c 3 weeks ago 159 MB
k8s.gcr.io/kube-scheduler v1.15.4 40eada7a21a8 3 weeks ago 81.1 MB
k8s.gcr.io/coredns 1.3.1 eb516548c180 9 months ago 40.3 MB
k8s.gcr.io/etcd 3.3.10 2c4adeb21b4f 10 months ago 258 MB
k8s.gcr.io/pause 3.1 da86e6ba6ca1 22 months ago 742 kB
3. 初始化集群(master 节点)
3.1 初始化
kubeadm init --kubernetes-version=v1.15.4 --pod-network-cidr=10.244.0.0/16
3.2 配置kubeconfig
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
4. node 加入集群(node 节点)
注意根据 3.1 步骤有输出修改成自己的加入集群命令
kubeadm join 172.16.7.181:6443 --token mltgdv.zwv212prlzrggio1 \
--discovery-token-ca-cert-hash sha256:dfd217d9c3c83f913a5a3fe2482b504780c176eef31bd00ed2ce3ce928f53555
5. 初始化网络
以 flannel 为例
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
6. 测试
6.1 集群状态
kubectl get cs
6.2 主机状态
kubectl get node
6.3 pod
kubectl get pod --all-namespaces