安装Kubernetes

线上的云环境

我们可以使用云平台的Kubernetes Service来管理部署我们的服务。

本地开发测试环境:

Linux系统(单个节点Kubernetes)

可以通过 microk8s可以非常快速的搭建起一个 Kubernetes 单机环境,安装极其非常方便。
ubuntu 自带 snap 命令,可以直接执行,centos 需要先安装 snap。

centos安装 snap
1
2
3
4
5
6
7
8
9
yum copr enable ngompa/snapcore-el7
yum -y install snapd
yum copr enable ngompa/snapcore-el7
yum install epel-release
yum install yum-plugin-copr
yum copr enable ngompa/snapcore-el7
yum -y install snapd
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap
snap安装Kubernetes
1
2
3
4
snap install microk8s --classic
#开启 DNS 服务
microk8s.enable dns dashboard
microk8s 常用操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1. 启动
microk8s.start
# 2. 关闭
microk8s.stop
# 3. 状态
microk8s.status
# 4. kubectl 操作
# 查看 cluster
microk8s.kubectl cluster-info
# 查看 nodes
microk8s.kubectl get nodes
# 查看 pods
microk8s.kubectl get pods
# docker 操作
microk8s.docker ps
microk8s.docker images
为microk8s.kubectl取别名

可以看到,在 microk8s 环境中执行 kubectl 时,需要在 kubectl 命令前添加前缀 microk8s.。为了跟其他系统环境统一我们可以取个别名kubectl

1
snap alias microk8s.kubectl kubectl
查看节点和集群信息

使用 kubectl get -h 可以看到更多关于kubectl get的用法,下面列举查看用得比较多的指令:

  • 查看node信息: kubectl get nodes
  • 查看services信息: kubectl get services
  • 查看deployment信息: kubectl get deployments
  • 查看pod信息: kubectl get pods

执行kubectl get nodes可以看到只会有1个master节点。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-for-desktop Ready master 1d v1.10.11
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 1d
$ kubectl get deployments
No resources found.
$ kubectl get pods
No resources found.

因为是本地运行minikube,所以只会有一个主节点,这个以后也不会改变,默认会有一个名为kubernetes的服务,注意其类型是 ClusterIP ,只能从集群内部访问,且其访问端口为443,而真正的部署和pod(类似于容器)现在都还是空的.

Linux系统(多个节点Kubernetes)

我们也可以使用kubeadm 来安装k8s集群,可以参照官方文档一步一步安装。

安装完成之后,多个节点,执行kubectl get nodes可以看到会有多个节点。

1
2
3
4
5
6
7
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-2-master-01 Ready master 34d v1.13.4
k8s-2-node-02 Ready <none> 34d v1.13.4
k8s-2-node-03 Ready <none> 34d v1.13.4
k8s-2-node-04 Ready <none> 33d v1.13.4

Mac / windows系统

可以使用Minikube,最新版的docker for mac已经自带了。
界面可视化安装,就不写步骤了。