企业入门实战--k8s之.K8s简介、k8s集群安装和部署
一.k8s 简介
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用(就像canary deployments)。
k8s集群安装及部署
安装环境:四台rhel7.6版本虚拟机,火墙和selinux关闭。
其中,server1 :harbor仓库
server2:master端
server3/4 :node端
配置好docker后,所有k8s集群中的节点禁用swap分区,注释掉/etc/fstab分区的定义
swapoff -a
vim /etc/fstab
设定docker cgroup driver:systemd
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://reg.westos.org"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
重启服务
systemctl start docker.service
docker info
在server3/4上修改默认仓库
scp daemon.json server3:/etc/docker/ ## 重启服务
scp daemon.json server4:/etc/docker/ ## 重启服务
上述操作server2、3、4中均需要操作。
k8s安装和部署
编辑仓库
cd /etc/yum.repos.d/
vim dvd.repo
cat dvd.repo
[dvd]
name=dvd
baseurl=http://172.25.5.250/rhel7.6
gpgcheck=0
[docker]
name=docker-ce
baseurl=http://172.25.5.250/docker-ce
gpgcheck=0
[Kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
安装 在server2/3/4
yum install -y kubelet kubeadm kubectl
systemctl enable --now kubelet 开机自启
在server1
在harbor中新建k8s仓库并将其公开
拉取所需要的镜像并将其上传至仓库中
docker pull coredns/coredns:1.8.0
docker tag coredns/coredns:1.8.0 reg.westos.org/k8s/coredns:v1.8.0
docker push reg.westos.org/k8s/coredns:v1.8.0
server2
拉取镜像
并将其上传至harbor的k8s仓库中
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
docker images |grep ^reg.westos.org/k8s |awk '{system("docker push "$1":"$2"")}
docker images |grep ^reg.westos.org/k8s
初始化k8s集群
kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.westos.org/k8s
设置环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf
echo "source <(kubectl completion bash)" >> ~/.bashrc
使用用flannel网络组件完善集群
将镜像压入harbor仓库
docker tag flannel:v0.14.0 reg.westos.org/library/flannel:v0.14.0
docker push reg.westos.org/library/flannel:v0.14.0
vim kube-flannel.yml 修改image路径为仓库路径
启动组件
kubectl apply -f kube-flannel.yml
查看节点情况,所有节点均running
kubectl get pod -n kube-system
server3、4:
将本机添加到部署好的server2集群中,此处命令为之前保存的初始化命令。
kubeadm join 172.25.5.2:6443 --token 6l6g4s.43rsgjm8zhrxq57s \
--discovery-token-ca-cert-hash
sha256:8e1001eef23c95e6bbfba081e81e2c43225fc4976ba66ac15fcef2aff2ed51ea
查看节点
kubectl get pod -n kube-system
k8s添加节点成功,k8s集群部署成功