1. 使用阿里云主机一键部署 k8s 集群

858 阅读1分钟

环境说明

  • 云主机: 2台(云主机需要可以翻墙
  • 操作系统: Ubuntu 18
  • 配置: 2C 2G

创建2台阿里云的云主机,创建步骤见下图

我使用的是按量计费,用完随时删除

  • 使用国外地域及可用区
  • 使用国外地域及可用区
  • 使用国外地域及可用区

e5423e4efa9757444c76e12f974c7a1.png

c813ed21309dd06bf982eb6afee4a52.png

1f6c9540f4773ae6bbba7ae0ba9aedc.png

设置 hostname

  • 将 master 节点的云主机 hostname 设置为 k8s-master
hostnamectl set-hostname k8s-master

fd9b2f0db32a4281dd9056d43da3d88.png

4b3af48d9e901af0b5dda721441d5f6.png

  • 将 worker 节点的云主机 hostname 设置为 k8s-worker1
hostnamectl set-hostname k8s-worker1

83ae50766d33c557a5828d40c287161.png

部署 master 节点(需要先 ssh 到 k8s-master 的云主机)

  • 执行下面命令一键部署 master 节点
curl https://gitee.com/huang_juan/k8s-deploy-shell/raw/master/master.sh | sh

f129e0dfa125ac0cfc5c82597a1390b.png

  • master 节点部署成功后如下图

ca7535faf53e63ea4ebc702d2f3d53d.png

  • master 节点查看 nodes 和 pods 情况,此时只有 k8s-master 一个节点

d0996f143692d82bcc050a1b9a48385.png

部署 worker 节点(需要先 ssh 到 k8s-worker1 云主机)

  • 执行下面的命令一键部署 worker 节点
curl https://gitee.com/huang_juan/k8s-deploy-shell/raw/master/worker.sh | sh

f2bc836f902adcbddea9b12c75838c0.png

  • worker 节点部署成功后如下图

77d85084e3b790dcfb476d95db62315.png

将 workder 节点加入到集群

  • 在 master 节点执行下面命令,获取到 token 和 ca_hash
kubeadm token create
master_ip=$(ifconfig | grep eth0 -A 1 | grep inet | awk '{print $2}')
token=$(kubeadm token list | grep -v TOKEN | awk '{print $1}' | head -n 1)
ca_hash=$(openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //')

echo kubeadm join $master_ip:6443 --token $token --discovery-token-ca-cert-hash sha256:$ca_hash

29c5948bb13282ad2f8140dab32ad35.png

  • 将 worker 节点加入 k8s cluster,先在 master 节点上的生成命令,复制到 worker 节点执行
kubeadm join $master_ip:6443 --token $token --discovery-token-ca-cert-hash sha256:$ca_hash

d672059f16ab1502e2792147e666057.png

  • 在 worker 节点上配置 kubectl

在 k8s-worker1 云主机上执行

mkdir -p $HOME/.kube
# $master_ip 需要替换成你的 k8s-master 云主机的 ip(如果你的两台云主机都是阿里云的,内网IP或外网IP都可以)
scp root@$master_ip:/etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

在 k8s-worker1 节点上验证 config 文件

cat /root/.kube/config

086fb494daf3e5b2515bc2aebf63928.png

配置成功后,在 k8s-worker1 节点上可以查看 nodes 信息,可以看到 k8s-worker1 节点已经加入到集群

775c727a4e52ac026b262988bce4c21.png

在 k8s-master 节点上查看 nodes 信息

47a89e79cdaa73b3cdc7b95d2bad4c8.png

87d135c235be0c8213388d9cf750e42.png

安装 Metrics API

  • 安装
kubectl apply -f https://gitee.com/huang_juan/k8s-deploy-shell/raw/master/metrics-api.yaml
  • 验证是否安装成功
kubectl get pods -A | grep metric
kubectl top pods -A

image.png