什么是kubernetes
Kubernetes是一款应用于集群的,容器自动部署、扩展和管理的开源平台,提供了一种以容器为中心的基础架构。利用kubernetes,你可以快速高效地响应客户如下请求:
- 应用程序的动态、精准部署
- 应用程序的动态扩展
- 无缝推出新功能
- 按需优化使用硬件资源
准备工作
- 准备三台2核4G的centos7的虚拟机
- 安装好docker
关闭防火墙
systemctl stop firewalld
关闭SElinux
setenforce 0
关闭交换分区
临时关闭
swapoff -a
永久关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab
将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
使其配置生效
sysctl --system
同步时间
安装插件
yum install -y ntpdate
同步时间
ntpdate time.windows.com
设置阿里云的yum源
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
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装kubeadm,kubelet和kubeclt
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubeclt-1.18.0
设置开机自启动
systemctl enable kubelet
部署kubernetes master
在(Master)执行 (注意修改为自己的Master地址)
kubeadm init \
--apiserver-advertise-address=192.168.159.136 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.0 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
按照提示操作进行部署
部署CNI网络插件
方法一
下载flannel插件的yml
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
修改kube-flannel.yml中的镜像仓库地址为国内源
sed -i 's/quay.io/quay-mirror.qiniu.com/g' kube-flannel.yml
安装网络插件
kubectl apply -f kube-flannel.yml
方法二
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
查看网络节点是否启动
kubectl get pods -n kube-system
kubectl get nodes
测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行
创建nginx容器
kubectl create deployment nginx --image=nginx
暴露对外端口
kubectl expose deployment nginx --port=80 --type=NodePort
查看nginx是否运行成功
kubectl get pod,svc