kubeadm 설치가 1.14 모범 사례는 Kubernetes

컨테이너 레이아웃 도구로는 Kubernetes는, 컨테이너 관리를 단순화 인기 업무의 효율성을 향상시킵니다. 국내 알리 클라우드 배포는 간단한 방법는 Kubernetes입니다.
A,는 Kubernetes 프로필
는 Kubernetes (K8S 함)의 오픈 소스 클러스터 관리 시스템 컨테이너, 컨테이너는 자동 클러스터 배치 자동 스케일링 용량 관리 및 기타 기능을 달성 할 수있다. 이 컨테이너의 레이아웃 도구뿐만 아니라 컨테이너 기술을 선도하는 새로운 분산 아키텍처 기반의 프로그램입니다. 상기 배치 조작의 응용, 자원 스케줄링 서비스 디스커버리 및 동적 스트레칭 및 기타 기능을위한 용기를 제공 도커 기술의 기초에서 대형 컨테이너 클러스터 관리의 편리 성을 향상시킨다.
클러스터의 K8S 관리 노드는 노드의 두 가지 유형으로 노력하고 있습니다. 관리 노드 사이의 K8S 노드 클러스터 관리, 클러스터 정보 교환, 작업 스케줄링에 대한 책임, 또한 컨테이너 관리를 담당, 포드, 네임 스페이스, PV 등의 수명주기. 포드는 노드 컨테이너 작업 주로, 포드 및 컨테이너 작업자 노드에서 모두 실행이 노드가 컨테이너의 수명주기를 관리하기 위해 관리와 통신 할 수 kubelet 서비스 노드를 통해 작동하고, 클러스터의 다른 노드와 통신하는 컴퓨팅 자원을 제공합니다.
 
둘째, 환경을 준비
아래와 같이는 Kubernetes 물리적 서버 또는 가상 머신을 실행 지원, 가상 머신이 테스트 환경, 하드웨어 구성 정보를 사용할 수 있습니다 :
IP 주소
노드 역할
CPU
기억
호스트 이름
디스크
10.10.10.10
석사
> = 2C
> = 2G
석사
SDA, SDB
10.10.10.11
노동자
> = 2C
> = 2G
노드 1
SDA, SDB
10.10.10.12
노동자
> = 2C
> = 2G
노드 2
SDA, SDB
참고 : 모든 노드에서 다음 단계
1. 호스트 이름이 관리 노드 마스터를 설정, 호스트 이름의 호스트 이름을 설정합니다.
hostnamectl 설정 호스트 마스터
다른 호스트 이름을 설정해야하는 경우, 마스터가 올바른 호스트 이름 노드 1로 대체 할 수, 노드 2가 될 수 있습니다.
2. 편집의 / etc / hosts 파일, 도메인 이름 확인을 추가합니다.
cat <<EOF >>/etc/hosts 10.10.10.10 master 10.10.10.11 node1 10.10.10.12 node2 EOF
 
3.关闭防火墙、selinux和swap。
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config swapoff -a sed -i 's/.*swap.*/#&/' /etc/fstab
 
4.配置内核参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
 
5.配置国内yum源
yum install -y wget mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo yum clean all && yum makecache
 
配置国内Kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
 
配置 docker 源
 
三、软件安装
注:在所有节点上进行如下操作
1.安装docker
yum install -y docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version Docker version 18.06.1-ce, build e68fc7a
docker服务为容器运行提供计算资源,是所有容器运行的基本平台。
2.安装kubeadm、kubelet、kubectl
yum -y install docker-ce-18-09 kubelet-1.14.2 kubeadm-1.14.2 kubectl--1.14.2 --disableexcludes=kubernetes systemctl enable kubelet
Kubelet负责与其他节点集群通信,并进行本节点Pod和容器生命周期的管理。 Kubeadm是Kubernetes的自动化部署工具,降低了部署难度,提高效率。Kubectl是Kubernetes集群管理工具。
四、部署master 节点
注:在master节点上进行如下操作
1.在master进行Kubernetes集群初始化。
kubeadm init --kubernetes-version=1.14.2 \ --apiserver-advertise-address= 10.10.10.10 \ master ip --image-repository registry.aliyuncs.com/google_containers \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16
 
添加开机自启(包括node)
systemctl enable kubelet.service
 
定义POD的网段为: 10.244.0.0/16, api server地址就是master本机IP地址。
这一步很关键,由于kubeadm 默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要通过 –image-repository指定阿里云镜像仓库地址,很多新手初次部署都卡在此环节无法进行后续配置
记录生成的最后部分内容,此内容需要在其它节点加入Kubernetes集群时执行。
kubeadm join 10.10.10.10:6443 --token kekvgu.nw1n76h84f4camj6 \ --discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e
 
2.配置kubectl工具
mkdir -p /root/.kube cp /etc/kubernetes/admin.conf /root/.kube/config kubectl get nodes kubectl get cs
 
3.部署flannel网络
 
4.重置kubectl
kubeadm reset
 
五、部署node节点
注:在所有node节点上进行如下操作
执行如下命令,使所有node节点加入Kubernetes集群
kubeadm join 10.10.10.10:6443 --token kekvgu.nw1n76h84f4camj6 \ --discovery-token-ca-cert-hash sha256:4ee74205227c78ca62f2d641635afa4d50e6634acfaa8291f28582c7e3b0e30e
此命令为集群初始化时(kubeadm init)返回结果中的内容。
 
六、集群状态检测
注:在master节点上进行如下操作
1.在master节点输入命令检查集群状态,返回如下结果则集群状态正常。
kubectl get nodes NAME     STATUS   ROLES    AGE     VERSION master   Ready    master   26m     v1.14.2 node1    Ready    <none>   3m10s   v1.14.2 node2    Ready    <none>   3m      v1.14.2
重点查看STATUS内容为 Ready时,则说明集群状态正常。
2.创建Pod以验证集群是否正常。
kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get pod,svc
七、部署Dashboard
注:在master节点上进行如下操作
1.创建Dashboard的yaml文件
sed -i 's/k8s.gcr.io/loveone/g' kubernetes-dashboard.yaml sed -i '/targetPort:/a\ \ \ \ \ \ nodePort: 30001\n\ \ type: NodePort' kubernetes-dashboard.yaml
 
2.部署Dashboard
kubectl create -f kubernetes-dashboard.yaml
3.创建完成后,检查相关服务运行状态
kubectl get deployment kubernetes-dashboard -n kube-system kubectl get pods -n kube-system -o wide kubectl get services -n kube-system netstat -ntlp|grep 30001
4.在Firefox浏览器输入Dashboard访问地址:https://10.10.10.10:30001
5.查看访问Dashboard的认证令牌
kubectl create serviceaccount dashboard-admin -n kube-system kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
6.使用输出的token登录Dashboard。
 
认证通过后,登录Dashboard首页如图
 

 

추천

출처www.cnblogs.com/carl007/p/11345173.html