引言

Kubernetes(简称K8s)作为现代云计算中的关键组件,已经成为容器编排的事实标准。它不仅提供了强大的自动化部署、扩展和管理功能,还通过用户界面(UI)使得集群管理变得更加直观和高效。本文将深入探讨如何轻松掌握K8s的高效UI配置,并揭示其中的秘密武器。

环境规划

在开始配置K8s UI之前,我们需要规划以下环境:

  1. 服务器:选择适合的物理服务器或虚拟机。
  2. 操作系统:推荐使用CentOS或Ubuntu等主流Linux发行版。
  3. 网络:确保网络连接稳定,配置静态IP地址。
  4. 安全:关闭不必要的端口和服务,配置防火墙规则。

初始化服务器

以下是初始化服务器的详细步骤:

1. 配置主机名

hostnamectl set-hostname <主机名>

2. 设置IP为静态IP

编辑/etc/sysconfig/network-scripts/ifcfg-<接口名>文件,设置以下参数:

BOOTPROTO=static
IPADDR=<IP地址>
NETMASK=<子网掩码>
GATEWAY=<网关>
DNS1=<DNS服务器1>
DNS2=<DNS服务器2>

3. 关闭selinux

编辑/etc/selinux/config文件,将SELINUX设置为disabled

4. 配置主机hosts文件

/etc/hosts文件中添加以下条目:

<主机名> <IP地址>

5. 配置服务器之间免密登录

生成SSH密钥对,并复制到其他服务器:

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub <用户名>@<服务器地址>

6. 关闭交换分区swap,提升性能

编辑/etc/fstab文件,将swap行注释掉。

7. 修改内核参数

编辑/etc/sysctl.conf文件,添加以下参数:

net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1

8. 关闭firewalld防火墙

systemctl stop firewalld
systemctl disable firewalld

9. 配置阿里云repo源

a. yum源修改

编辑/etc/yum.repos.d/CentOS-Base.repo文件,添加以下内容:

[aliyun]
name=aliyun
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=0

b. 安装命令测试

yum install -y hello

c. 添加docker源

编辑/etc/yum.repos.d/docker-ce.repo文件,添加以下内容:

[docker-ce]
name=Docker CE Repository
baseurl=https://download.docker.com/linux/centos/$releasever/os/
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

10. 配置安装k8s组件需要的阿里云repo源

编辑/etc/yum.repos.d/kubernetes.repo文件,添加以下内容:

[kubernetes]
name=Kubernetes Repository
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-kubeadm
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
name_kubernetes_signing=Kubernetes (Kubernetes)
baseurl_kubernetes_signing=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-signing
enabled_kubernetes_signing=1
gpgcheck_kubernetes_signing=1
gpgkey_kubernetes_signing=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

11. 配置时间同步

yum install -y ntp
systemctl enable ntpd
systemctl start ntpd

12. 安装基础软件包

yum install -y epel-release

13. 安装docker服务

a. 安装docker

yum install -y docker-ce

b. 配置镜像加速器

编辑/etc/docker/daemon.json文件,添加以下内容:

{
  "registry-mirrors": ["https://<镜像加速器地址>"]
}

重启docker服务:

systemctl restart docker

14. 安装初始化k8s需要的软件包

yum install -y kubeadm kubelet kubectl

kubeadm初始化k8s

以下是使用kubeadm初始化K8s集群的步骤:

1. kubeadm初始化master节点

kubeadm init --pod-network-cidr=10.244.0.0/16

2. 查询k8s集群状态

kubectl get nodes

3. 将工作节点添加进集群

kubeadm join <master节点IP地址>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

4. 安装网络插件-Calico

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

5. 测试k8s创建pod是否可以正常访问网络

创建一个简单的Pod并尝试访问外部服务:

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - name: test-container
    image: nginx
    ports:
    - containerPort: 80

安装dashboard

以下是安装Kubernetes dashboard的步骤:

1. 镜像拉取

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

2. 安装dashboard组件

kubectl rollout status deployment kubernetes-dashboard

3. dashboard状态检测

kubectl get pods -n kubernetes-dashboard

4. 浏览器测试

打开浏览器,访问以下地址:

https://<master节点IP地址>:<端口>/

5. dashboard登录

a. 通过token访问dashboard

在命令行中执行以下命令,获取访问token:

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get secret | grep default | awk '{print $1}') -o jsonpath='{.data.token}' | base64 --decode

b. 通过kubeconfig文件访问dashboard

将以下内容保存为kubeconfig文件:

apiVersion: v1
clusters:
- cluster:
    server: https://<master节点IP地址>:<端口>
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    namespace: default
    user: default
  name: default
current-context: default
kind: Config
users:
- name: default
  user:
    token: <token>

使用kubeconfig文件访问dashboard:

kubectl config use-context default