下面给你一条从零到能跑起来的 CentOS + Kubernetes(k8s)入门路线,偏实战,不堆概念。
| 角色 | IP | 主机名 |
|---|---|---|
| master | 192.168.10.10 | k8s-master |
| node1 | 192.168.10.11 | k8s-node1 |
| node2 | 192.168.10.12 | k8s-node2 |
学习阶段:1 master + 2 node 最合适
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 关闭 swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
# 设置主机名
hostnamectl set-hostname k8s-master # 各节点不同
# hosts 解析
cat >> /etc/hosts <<EOF
192.168.10.10 k8s-master
192.168.10.11 k8s-node1
192.168.10.12 k8s-node2
EOF
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl enable docker
systemctl start docker
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
kubeadm init \
--apiserver-advertise-address=192.168.10.10 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
初始化成功后:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
查看状态:
kubectl get nodes
在 master 初始化输出中会有:
kubeadm join 192.168.10.10:6443 --token xxx --discovery-token-ca-cert-hash xxx
在 node 节点执行即可。
kubectl get nodes
kubectl get pods -n kube-system
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc
浏览器访问:
http://节点IP:端口
如果你愿意,我可以:
你现在是 纯学习 还是 准备上生产?