k8s集群部署方案_使用kubeadmin部署K8s集群

(一)准备工作

l 安装CentOS虚拟机、配置主机名、关闭防火墙、SELinux、禁用Swap、

systemctl stop firewalld.service

systemctl disable firewalld.service

swapoff -a

sed -i 's/enforcing/disabled/' /etc/selinux/config

setenforce 0

配置主机名和IP。

192.168.79.111

master

192.168.79.112

node1

192.168.79.113

node2

所有节点安装Docker。这里我们使用阿里云提供的镜像来快速安装,repo文件如下:

yum -y install wget

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo \

 -O /etc/yum.repos.d/docker-ce.repo

yum -y install docker-ce-18.06.1.ce-3.el7

systemctl enable docker && systemctl start docker

docker --version

l 配置Docker的镜像加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <

{

  "registry-mirrors": ["https://n21ixncu.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

l 配置阿里云的Kubernetes源

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

(二)使用kubeadmin部署K8s集群

l 所有节点安装kubeadm,kubelet和kubectl。

由于版本更新频繁,这里指定版本号部署

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

systemctl enable kubelet

l 部署Kubernetes Master(在Master节点执行)

kubeadm init \

--apiserver-advertise-address=192.168.79.111 \

--image-repository registry.aliyuncs.com/google_containers \

--kubernetes-version v1.15.0 \

--service-cidr=10.1.0.0/16 \

--pod-network-cidr=10.244.0.0/16

 注意:由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。

l 使用kubectl工具

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

l 安装配置flannel网络

wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

确保quay.io/coreos/flannel:v0.11.0-amd64这个镜像能够访问到。如果不可以,可以修改赵老师的镜像地址:collenzhao/flannel:v0.11.0-amd64

quay.io/coreos/flannel:v0.11.0-amd64    

改为

collenzhao/flannel:v0.11.0-amd64

l 向集群添加新节点(所有的Node节点执行)

执行在kubeadm init输出的kubeadm join命令:

kubeadm join 192.168.79.111:6443 \

--token 6p5a3s.n5nuzppgf9hmxypf \

--discovery-token-ca-cert-hash \

sha256:64541d1e9d46b4597f691b1d3b60fd842a89a56a19f041c183c22a54d8d1f145

在Mater节点执行命令查看集群的状态信息。

kubectl get nodes

l 测试kubernetes集群

在Kubernetes集群中创建一个pod,运行Nginx服务,验证是否正常运行。

kubectl create deployment nginx --image=nginx

kubectl expose deployment nginx --port=80 --type=NodePort

kubectl get pod,svc

(三)部署DashBoard UI

l 获取yaml文件

wget \

https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

以下是修改完成的yaml文件。需要修改image的部分和增加NodePort参数。

l 修改yaml配置文件image部分,指定镜像从阿里云镜像仓库拉取

- name: kubernetes-dashboard

  #image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 改成下面的配置

  image: registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1

l 默认Dashboard只能集群内部访问,修改Service为NodePort类型,暴露到外部。

# ------------------- Dashboard Service ------------------- #

kind: Service

apiVersion: v1

metadata:

  labels:

    k8s-app: kubernetes-dashboard

  name: kubernetes-dashboard

  namespace: kube-system

spec:

  type: NodePort

  ports:

    - port: 443

      targetPort: 8443

      nodePort: 31620

  selector:

    k8s-app: kubernetes-dashboard

88018470985115b0b7bf519864f41d15.png

2c908aabe6a00e4a2396198fbdb4db7c.png

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值