部署k8s1.16.0版本(成功)

一、环境

• 安装docker-ce 18.09.9(所有机器)

• 设置k8s环境前置条件(所有机器)

• 安装k8s v1.16.0 master管理节点

• 安装k8s v1.16.0 node工作节点

• 安装flannel(master)

• linux发行版:CentOS7(2g内存,2个cpu)

• linux内核(使用uname -r查看):3.10.0-957.el7.x86_64

• master和node节点通信的ip(master):192.168.198.110,(node3):192.168.198.120

二、安装docker-ce 18.09.9(所有机器)

所有安装k8s的机器都需要安装docker,命令如下:

# 安装docker所需的工具

yum install -y yum-utils device-mapper-persistent-data lvm2

# 配置阿里云的docker源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 指定安装这个版本的docker-ce

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

# 启动docker

systemctl start docker && systemctl enable docker

三、设置k8s环境准备条件(所有机器)

# 关闭防火墙

systemctl disable firewalld

systemctl stop firewalld

# 关闭selinux

# 临时禁用selinux

setenforce 0

# 永久关闭 修改/etc/sysconfig/selinux文件设置

sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

# 禁用交换分区

swapoff -a

# 永久禁用,打开/etc/fstab注释掉swap那一行。

sed -i 's/.*swap.*/#&/' /etc/fstab

# 修改内核参数

cat <<EOF >  /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

sysctl --system

四、 安装k8s v1.16.0 master管理节点

1. 安装kubeadm、kubelet、kubectl

由于官方k8s源在google,国内无法访问,这里使用阿里云yum源

# 执行配置k8s阿里云源

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

 

# 安装kubeadm、kubectl、kubelet

yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0

 

# 启动kubelet服务

systemctl enable kubelet && systemctl start kubelet

2. 初始化k8s 

 

kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address 192.168.198.110 --pod-network-cidr=10.244.0.0/16 --token-ttl 0

上面安装完后,会提示你输入如下命令,复制粘贴过来,执行即可。

mkdir -p $HOME/.kube

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

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

3. 记住node加入集群的命令 上面kubeadm init执行成功后会返回给你node节点加入集群的命令,等会要在node节点上执行,需要保存下来,如果忘记了,可以使用如下命令获取。

kubeadm token create --print-join-command

五、安装k8s v1.16.0 node工作节点

1. 安装kubeadm、kubelet

# 执行配置k8s阿里云源

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

# 安装kubeadm、kubectl、kubelet

yum install -y  kubeadm-1.16.0-0 kubelet-1.16.0-0

# 启动kubelet服务

systemctl enable kubelet && systemctl start kubelet

2. 加入集群 这里加入集群的命令每个人都不一样,可以登录master节点,使用kubeadm token create --print-join-command 来获取。获取后执行如下。

# 加入集群,如果这里不知道加入集群的命令,可以登录master节点,使用kubeadm token create --print-join-command 来获取

kubeadm join 192.168.198.120:6443 --token tgri7x.ly315jzsqt1hx8kx     --discovery-token-ca-cert-hash sha256:4130d848f62a0f46a97836ecc33aecd5c5884022b186f4dfa5bd37865600f747 加入成功后,可以在master节点上使用kubectl get nodes命令查看到加入的节点。

六、安装flannel(master机器)

以上步骤安装完后,机器搭建起来了,但状态还是NotReady状态,如下图,master机器需要安装flanneld。

[root@master ~]# kubectl get nodes

NAME     STATUS     ROLES    AGE   VERSION

master   NotReady   master   18h   v1.16.0

node3    NotReady   <none>   27s   v1.16.0

3. 下载官方fannel配置文件 使用wget命令,地址为:

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

4. 安装fannel

kubectl apply -f kube-flannel.yml

七、完成

[root@master ~]# kubectl get nodes

NAME     STATUS     ROLES    AGE   VERSION

master   Ready   master   18h   v1.16.0

node3    Ready   <none>   27s   v1.16.0

八、部署dashboard

获取部署dashboard的yaml文件:

wget https://github.com/kubernetes/dashboard/blob/master/aio/deploy/recommended.yaml

mv recommended.yaml dashboard.yaml

vim dashboard.yaml 编辑以下内容

-----------------------------------------------------------------------------------------

kind: Service

apiVersion: v1

metadata:

  labels:

    k8s-app: kubernetes-dashboard

  name: kubernetes-dashboard

  namespace: kubernetes-dashboard

spec:

  type: NodePort #添加端口类型

  ports:

    - port: 443

      targetPort: 8443

      nodePort: 30001 #指定端口,不然会随机开启

  selector:

    k8s-app: kubernetes-dashboard

-------------------------------------------------------------------------------------------

创建服务

kubectl apply -f dashboard.yaml

创建sa

kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard

绑定集群管理员

kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin

获取token

kubectl describe secrets 

网页登录https://ip:30001

 

删除资源

kubectl delete -f dashboard.yaml

 

部署k8s1.16.0版本(成功)

 

上一篇:国内外主流5款doshboard软件比较和对比


下一篇:常用Doc命令