����λ�ã���ҳ > �����̳� > �̳� > Kubernetes ����Ⱥ1.28.2�汾(�޿�)

Kubernetes ����Ⱥ1.28.2�汾(�޿�)

��Դ������������|��ʱ�䣺2024-04-22 08:48:53 |���Ķ���87��|�� ��ǩ�� T Net 2 K S Uber �� |����������

�����һ��һ�����ڵ�������ӽڵ�Kubernetes 1.28.2 ��Ⱥ����׼���û��� host hostname os role hardware 192.168.31.200 master01 centos7.9 control-plane cpu:2c �ڴ�: 3G Ӳ��1:50G 192.

  • �����һ��һ�����ڵ�������ӽڵ�Kubernetes 1.28.2 ��Ⱥ����׼���û���
host hostname os role hardware
192.168.31.200 master01 centos7.9 control-plane cpu:2c �ڴ�: 3G Ӳ��1:50G
192.168.31.201 node01 centos7.9 worker cpu:2c �ڴ�: 3G Ӳ��1:50G Ӳ��2:50G
192.168.31.202 node02 centos7.9 worker cpu:2c �ڴ�: 3G Ӳ��1:50G Ӳ��2:50G
  • Ԥ����201��103�ڵ㣬�������ݼ�Ⱥ��control-plane�ڵ�߿��á�
  • ����work�ڵ������һ��50Ӳ�̣�������ceph�洢�á�

1. ��������׼��

  • ���нڵ�ȫ��ִ�л�����ʼ�������������Ҫ����Ⱥ�����ڵ�ҲҪ�����������
  • ���нڵ㰴�ձ����޸�������

1�����нڵ�ȫ���رշ���ǽ

systemctl stop firewalld
systemctl disable firewalld
systemctl is-enabled firewalld

2������ntp serverͬ��ʱ��

ntpdate ntp1.aliyun.com
vi /etc/crontab
1 * * * * root /usr/sbin/ntpdate ntp1.aliyun.com && /sbin/hwclock -w

3�����ùر�selinux

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

4���ر�swap����

sed -i '/swap/s/^/#/g' /etc/fstab
swapoff -a 

5������hosts

[root@master01 ~]# cat >>/etc/hosts <

6���ں�����

��飺 centos7 yum�������������ں�

1���鿴��ǰ�ں˰汾
[root@master01 ~]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
2������ELPepo�ֿ⹫����Կ
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
3����װELPepo�IJֿ�yumԴ
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
4��ѡ��lt�汾��װ
  • lt��������
  • ml�����ȶ���
yum -y  --enablerepo=elrepo-kernel install kernel-lt
5�������ں�Ĭ������
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
grub2-set-default 0

6������

reboot

7���鿴�ں˰汾

[root@master01 ~]# uname -a
Linux localhost.localdomain 4.4.244-1.el7.elrepo.x86_64 #1 SMP Tue Nov 17 18:57:10 EST 2020 x86_64 x86_64 x86_64 GNU/Linux

2. ����Kubernetes�����

  • ����IJ������нڵ�ȫ��ִ�У��������Ҫ����Ⱥ�����ڵ�ҲҪ���������

1�������ں˲���

cat > /etc/sysctl.d/Kubernetes.conf <

��Щ���ò����ĺ����ǣ�

  1. net.bridge.bridge-nf-call-ip6tables = 1 ����ͨ���Ž�������յ�IPv6���ݰ�ʱ�������� ip6tables �Ĺ�����д�����
  2. net.bridge.bridge-nf-call-iptables = 1 ����ͨ���Ž�������յ�IPv4���ݰ�ʱ�������� iptables �Ĺ�����д�����
  3. net.ipv4.ip_forward = 1 ������IPv4�����ݰ�ת������ʹ���ݰ���Ŀ�겻�DZ�����
  4. vm.swappiness = 0 : vm.swappiness�Dz���ϵͳ���������ڴ潻����ȥ�IJ��ԡ���������ֵ��һ���ٷֱȵ�ֵ����СΪ0���������100����ֵĬ��Ϊ60��vm.swappiness����Ϊ0��ʾ������swap��100��ʾ������inactive���ڴ�ҳ������ȥ��

Kubernetesͨ��iptablesʵ�ַ����ֺ���������·�ɣ�podͨ�š���һ������Ҫ��û�����õĻ��ᵼ�¼�Ⱥ����ͨ�Ź��ϣ���pod�޷�ͨ�š���ģ��

yum -y install conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
# ����ں�ģ��
cat > /etc/modules-load.d/ipvs.conf <
  • ip_vs �� ip_vs_rr �� ip_vs_wrr �� ip_vs_sh ��IPVS��ص��ں�ģ�顣�����ṩ�˲�ͬ�ĸ��ؾ����㷨��round-robin����Ȩ��ѯ������������ȣ���
  • nf_conntrack �� nf_conntrack_ipv4 �������������Ӹ��ٵ��ں�ģ�飬���ڷ���ǽ��NAT�зdz���Ҫ��
  • linux kernel 4.19�汾�Ѿ���nf_conntrack_ipv4 ����Ϊ nf_conntrack

3������ϵͳ

[root@master01 ~]# reboot
# ����Ƿ���سɹ�
lsmod |egrep "ip_vs|nf_conntrack_ipv4"
nf_conntrack_ipv4      15053  26
nf_defrag_ipv4         12729  1 nf_conntrack_ipv4
ip_vs_sh               12688  0
ip_vs_wrr              12697  0
ip_vs_rr               12600  0
ip_vs                 145458  6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
nf_conntrack          139264  10 ip_vs,nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_nat_masquerade_ipv4,nf_nat_masquerade_ipv6,nf_conntrack_netlink,nf_conntrack_ipv4,nf_conntrack_ipv6
libcrc32c              12644  4 xfs,ip_vs,nf_nat,nf_conntrack

4����װ containerd

  • ˳�����һ����ʷ����������docker�ƴ󣬵�dockerû��ʵ��CRI��Kubernetesֻ����dockershim��������������docker��ʹ����Խ���cri�����dockershim��Kubernetes1.24�汾�ͱ�����ά���ˡ�containerd�Ǵ�docker�з�������Ŀ�Դ��Ŀ��ǿ�����ԡ���׳�ԺͿ���ֲ�ԡ����������¹���

  • �����������������ڣ��Ӵ�������������������

  • ��ȡ/������������

  • �洢���������������������ݵĴ洢��

  • ���� runc ������������ runc ����������ʱ������runc��oci ����������׼��һ��ʵ�֡�oci���Ǵ���������Ҫ��һЩ namespaces �� cgroups �����ã��Լ����� root �ļ�ϵͳ�Ȳ����Ĺ淶��

  • ������������ӿڼ�����

yum -y install yum-utils device-mapper-persistent-data lvm2
# ���Ӱ���Դ
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# ���� containerd
cat >>/etc/modules-load.d/containerd.conf <
  • overlay ��һ���ļ�ϵͳ���ͣ���֧���ڲ��ı�ײ��ļ�������£����Ķ���������һ��������ļ��㡣�������� Docker ��������������ʱ�У����������������ļ�ϵͳ����дʱ���ƣ�
  • br_netfilter ��һ��������ص��ں�ģ�飬������ iptables ���������繤�߶��Ž��������й��ˡ����� Kubernetes ���������к���Ҫ���ر�����ʹ�� overlay ���磨�� flannel��Calico �ȣ�ʱ��

5������containerd

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
# ʹ��systemd����cgroups
sed -i '/SystemdCgroup/s/false/true/g' /etc/containerd/config.toml
# ����sadnbox image�Ӱ�������ȡ
sed -i '/sandbox_image/s/registry.k8s.io/registry.aliyuncs.com\/google_containers/g' /etc/containerd/config.toml
sed -i 's#sandbox_image = "registry.k8s.io/pause:3.6"#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"#' /etc/containerd/config.toml
# ����containerd
systemctl enable containerd
systemctl start containerd

3����װkubeamd��kubelet��kubectl

  • ����IJ������нڵ�ȫ��ִ�� ���������Ҫ����Ⱥ�����ڵ�ҲҪ���������

1�����Ӱ���Դ

cat >/etc/yum.repos.d/kubernetes.repo <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

2����װ������

# �鿴���ð汾
yum list kubelet --showduplicates |grep 1.28

# ��ʼ��װ   ��ƪ�ĵ�д��ʱ�����°汾Ϊ1.28.2  ��ֱ�Ӱ�װ�����°�
yum -y install kubectl-1.28.2 kubelet-1.28.2 kubeadm-1.28.2

# ����
systemctl enable kubelet
systemctl start kubelet

4������control-plane�ڵ�

  • ���²���ֻ��control-plane�ڵ�ִ��

1��ʹ��kubeadm��ʼ��

# �鿴���辵��
[root@master01 ~]# kubeadm config images list --kubernetes-version=v1.28.2
registry.k8s.io/kube-apiserver:v1.28.2
registry.k8s.io/kube-controller-manager:v1.28.2
registry.k8s.io/kube-scheduler:v1.28.2
registry.k8s.io/kube-proxy:v1.28.2
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.7-0
registry.k8s.io/coredns/coredns:v1.10.1

# ��ʼ��
[root@master01 ~]# kubeadm init --kubernetes-version=1.28.2 \
--apiserver-advertise-address=192.168.31.200  \
--image-repository  registry.aliyuncs.com/google_containers \
--pod-network-cidr=172.16.0.0/16
  • apiserver-advertise-address дcontrol-plane��ip
  • pod-network-cidr д������ͻ������
  • image-repository ָ���Ӱ�������ȡ����

����ִ����ɺ�᷵��һ�������ݣ���Ҫ����󲿷�

Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
    export KUBECONFIG=/etc/kubernetes/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.96.101:6443 --token l906wz.0fydt3hcfbogwlo9 \
        --discovery-token-ca-cert-hash sha256:2604d3aab372a483b26bcbdafdb54d7746226975c3a317db07d94eccdfca51be
  • ����ʾ����������֤
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
  • ���
[root@master01 ~]# kubectl get node
NAME                     STATUS          ROLES            AGE       VERSION
control-plane01          NotReady        control-plane    50s       v1.28.2
[root@master01 ~]# kubectl get pods -A
[root@master01 ~]# kubectl get pods -n kube-system
NAME                                           READY   STATUS    RESTARTS      AGE
coredns-7bdc4cb885-fs2tz                       1/1     Pending   0             13d
coredns-7bdc4cb885-wk7c9                       1/1     Pending   0             13d
etcd-control-plane01                           1/1     Running   0             13d
kube-apiserver-control-plane01                 1/1     Running   0             13d
kube-controller-manager-control-plane01        1/1     Running   0             13d
kube-proxy-mfzmq                               1/1     Running   3 (25h ago)   13d
kube-scheduler-control-plane01                 1/1     Running   0             13d
  • ���뼯Ⱥtoken���ڻ�����������ȡ���뼯Ⱥ����
kubeadm token create --print-join-command

2������calico

1����װcalico������
wget https://docs.projectcalico.org/manifests/calico.yaml

��Ϊ10.244.0.0/16

Kubernetes ²¿Êð¼¯Èº1.28.2°æ±¾(ÎÞ¿Ó)

2��ָ������
# Cluster type to identify the deployment type
  - name: CLUSTER_TYPE
  value: "k8s,bgp"
# ��������
  - name: IP_AUTODETECTION_METHOD
    value: "interface=eth0"
    # eth0������������
  • calico �Զ�̽�黥������������ж��������������������ڻ���������ӿ������������ʽ��������� eth0 (�����Լ�������������ӿ����޸�)����ָ������
  • ����podʱ�������±���
 Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "5d6557ac061d164d494042e7e9b6cc38c95688a358275a78f5bbb7dd3883c063" network for pod "ingress-nginx-admission-create-b9q9w": networkPlugin cni failed to set up pod "ingress-nginx-admission-create-b9q9w_ingress-nginx" network: error getting ClusterInformation: connection is unauthorized: Unauthorized, failed to clean up sandbox container "5d6557ac061d164d494042e7e9b6cc38c95688a358275a78f5bbb7dd3883c063" network for pod "ingress-nginx-admission-create-b9q9w": networkPlugin cni failed to teardown pod "ingress-nginx-admission-create-b9q9w_ingress-nginx" network: error getting ClusterInformation: connection is unauthorized: Unauthorized]
3������
kubectl apply -f calico.yaml
# ���
[root@master01 ~]#  kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS      AGE
calico-kube-controllers-6849cf9bcf-gv6xx   1/1     Running   0             13d
calico-node-2d7xx                          1/1     Running   0             13d
coredns-7bdc4cb885-fs2tz                   1/1     Running   0             13d
coredns-7bdc4cb885-wk7c9                   1/1     Running   0             13d
etcd-control-plane01                       1/1     Running   0             13d
kube-apiserver-control-plane01             1/1     Running   0             13d
kube-controller-manager-control-plane01    1/1     Running   0             13d
kube-proxy-mfzmq                           1/1     Running   3 (25h ago)   13d
kube-scheduler-control-plane01             1/1     Running   0             13d

5��worker�ڵ���뼯Ⱥ

# ����worker�ڵ㶼ִ��
kubeadm join 192.168.31.200:6443 --token l906wz.0fydt3hcfbogwlo9 \
        --discovery-token-ca-cert-hash sha256:2604d3aab372a483b26bcbdafdb54d7746226975c3a317db07d94eccdfca51be
# �鿴״̬
[root@master01 ~]# kubectl get nodes
NAME          STATUS   ROLES           AGE   VERSION
control-plane01   Ready    control-plane   13d   v1.28.2
node01   Ready              13d   v1.28.2
node02   Ready              13d   v1.28.2
node03   Ready              13d   v1.28.2

6��Kubernetes dashboard ��װ

1����װ���ȫ

yum -y install bash-completion
echo "source <(kubectl completion bash)" >> /etc/profile
source /etc/profile

2��kubernetes-dashboard��װ����ѡ��kubesphere�����ã�

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v3.0.0-alpha0/charts/kubernetes-dashboard.yaml
  • �޸���������
kind: Service
apiVersion: v1
metadata:
  labels:
    Kubernetes-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort       # ��������
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30000  # �������ݣ��˿ڷ�Χ30000-32767��
  selector:
    Kubernetes-app: kubernetes-dashboard
# ��װ
kubectl apply -f recommended.yaml
# �鿴����
[root@master01 ~]# kubectl get all -n kubernetes-dashboard
NAME                                             READY   STATUS    RESTARTS      AGE
pod/dashboard-metrics-scraper-5cb4f4bb9c-h549p   1/1     Running   3 (26h ago)   13d
pod/kubernetes-dashboard-6967859bff-cm4tl        1/1     Running   4 (26h ago)   13d

NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
service/dashboard-metrics-scraper   ClusterIP   10.108.31.72            8000/TCP        13d
service/kubernetes-dashboard        NodePort    10.102.47.173           443:30000/TCP   13d

NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/dashboard-metrics-scraper   1/1     1            1           13d
deployment.apps/kubernetes-dashboard        1/1     1            1           13d

NAME                                                   DESIRED   CURRENT   READY   AGE
replicaset.apps/dashboard-metrics-scraper-5cb4f4bb9c   1         1         1       13d
replicaset.apps/kubernetes-dashboard-6967859bff        1         1         1       13d
  • ����admin�û�
[root@master01 ~]# vim admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin
  namespace: kubernetes-dashboard  
---
apiVersion: v1
kind: Secret
metadata:
  name: kubernetes-dashboard-admin
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/service-account.name: "admin"
type: kubernetes.io/service-account-token
# ����admin�û�token
kubectl -n kubernetes-dashboard create token admin

# ��ȡtoken
Token=$(kubectl -n kubernetes-dashboard get secret |awk '/kubernetes-dashboard-admin/ {print $1}')
kubectl describe secrets -n kubernetes-dashboard ${Token} |grep token |awk 'NR==NF {print $2}'
  • Ȼ��Ϳ���ʹ��token��½�ˣ���ַ�� ��Ⱥ����ڵ�IP:30000

7��Kubernetes metrics-server �������

1��metrics-server ����

  • heapster�Ѿ���metrics-serverȡ�������ʹ��kubernetes���Զ����ݹ��ܵĻ��������ȵ���һ�������Ȼ��ò�����ռ�������Ϣ��cpu��memory..�����Զ����ݵ����õ�ֵ���бȶԣ��Զ�����pod���������ڸò������kubernetes����Щ�汾�в��õ���heapster��1.13�汾��ʽ�����󣬶�����heapster���ٷ��Ƽ�����metrics-sever��
  • metrics serverΪKubernetes�Զ������ṩһ��������Դ����Դ��metrics-server �� kubelet �л�ȡ��Դָ�꣬��ͨ�� Metrics API �� Kubernetes API �������й������ǣ��Թ� HPA �� VPA ʹ�á�

2����װ����

1����ȡyaml�ļ���
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml -O metrics-server.yaml
  • �༭yaml�ļ���֮ǰ����Ⱥ�õ���ǩ��֤�飬metrics-serverֱ������kubelet�ӿڻ�֤��У��ʧ�ܣ����deployment������- --kubelet-insecure-tls���������⾵��ԭ����registry.k8s.io���������ز����㣬������������޸ij��˹��ھ���ֿ��ַ�����������п��������أ�Ȼ�����Ƶ���������ֿ⣬����Ҳ�ij����������ַ��
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: metrics-server
  name: metrics-server
  namespace: kube-system
spec:
  # ...
  template:
  	spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls     # ��Ҫ�¼ӵ�һ��
        image: registry.cn-hangzhou.aliyuncs.com/rainux/metrics-server:v0.6.4
2����װ����
kubectl apply -f metrics-server.yaml
# �鿴�Ƿ�������
kubectl get pods -n kube-system | grep metrics
# ��ȡ��Ⱥ��ָ������
kubectl get --raw /apis/metrics.k8s.io/v1beta1 | python3 -m json.tool

��������ɼ�����Ⱥ�ṩnodes��pods����Դָ�ꡣ

{
  "kind": "APIResourceList",
  "apiVersion": "v1",
  "groupVersion": "metrics.k8s.io/v1beta1",
  "resources": [
    {
      "name": "nodes",
      "singularName": "",
      "namespaced": false,
      "kind": "NodeMetrics",
      "verbs": [
        "get",
        "list"
      ]
    },
    {
      "name": "pods",
      "singularName": "",
      "namespaced": true,
      "kind": "PodMetrics",
      "verbs": [
        "get",
        "list"
      ]
    }
  ]
}
3��������֤
#1-2���Ӻ�鿴���
[root@master01 ~]#  kubectl top nodes
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k8s-master   256m         12%    2002Mi          52%       
k8s-node1    103m         5%     1334Mi          34%       
k8s-node2    144m         7%     1321Mi          34%  
4��top����
  • kubectl top���������鿴node�ڵ��pod����Դʹ�������
# �鿴 top ����İ���
kubectl top --help
# �鿴node�ڵ����Դʹ�����
kubectl top node
# �鿴pod����Դʹ�����
kubectl top pod
# �鿴���������ռ��pod��Դʹ�����
kubectl top pod -A
  • �ٻص�dashboard������Կ���CPU���ڴ�ʹ������ˣ� Kubernetes ²¿Êð¼¯Èº1.28.2°æ±¾(ÎÞ¿Ó)

Դ��

5��������֤��������
[root@k8s-master01 dashboard]# vim /root/.kube/config    # ���� token ���� 
- name: admin
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQxekNDQXIrZ0F3SUJBZ0lVTFFhcXpaaitVc0tRU1BiWVlMRmxDWnhDZVBNd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1lURUxNQWtHQTFVRUJoTUNRMDR4RVRBUEJnTlZCQWdUQ0VoaGJtZGFhRzkxTVFzd0NRWURWUVFIRXdKWQpVekVNTUFvR0ExVUVDaE1EYXpoek1ROHdEUVlEVlFRTEV3WlRlWE4wWlcweEV6QVJCZ05WQkFNVENtdDFZbVZ5CmJtVjBaWE13SUJjTk1qQXdOREU1TURVeE1UQXdXaGdQTWpBM01EQTBNRGN3TlRFeE1EQmFNR2N4Q3pBSkJnTlYKQkFZVEFrTk9NUkV3RHdZRFZRUUlFd2hJWVc1bldtaHZkVEVMTUFrR0ExVUVCeE1DV0ZNeEZ6QVZCZ05WQkFvVApEbk41YzNSbGJUcHRZWE4wWlhKek1ROHdEUVlEVlFRTEV3WlRlWE4wWlcweERqQU1CZ05WQkFNVEJXRmtiV2x1Ck1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeG1MWWxNQXFEeGVreXljWWlvQXUKU2p5VzhiUCtxTzF5bUhDWHVxSjQ3UW9Vd0lSVEFZdVAyTklQeFBza04xL3ZUeDBlTjFteURTRjdYd3dvTjR5cApacFpvRjNaVnV1NFNGcTNyTUFXT1d4VU93REZNZFZaSkJBSGFjZkdMemdOS01FZzRDVDhkUmZBUGxrYVdxNkROCmJKV3JYYW41WGRDUnE2NlpTdU9lNXZXTWhENzNhZ3UzWnBVZWtHQmpqTEdjNElTL2c2VzVvci9LeDdBa0JuVW0KSlE3M2IyWUl3QnI5S1ZxTUFUNnkyRlhsRFBpaWN1S0RFK2tGNm9leG04QTljZ1pKaDloOFZpS0trdnV3bVh5cwpNREtIUzJEektFaTNHeDVPUzdZR1ZoNFJGTGp0VXJuc1h4TVBtYWttRFV1NkZGSkJsWlpkUTRGN2pmSU9idldmCjlRSURBUUFCbzM4d2ZUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3RUcKQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQ01BQXdIUVlEVlIwT0JCWUVGS1pCcWpKRldWejZoV1l1ZkZGdApHaGJnQ05MU01COEdBMVVkSXdRWU1CYUFGQWJLKzBqanh6YUp3R1lGYWtpWVJjZzZENkpmTUEwR0NTcUdTSWIzCkRRRUJDd1VBQTRJQkFRQ05Ra3pueDBlSDU3R2NKZTF5WUJqNkY4YmVzM2VQNGRWcUtqQVZzSkh6S3dRWnpnUjIKcnVpMmdZYTZjdWNMNGRWVllHb05mRzRvdWI0ekJDTUIzZkRyN2FPRFhpcGcrdWx3OFpRZGRaN3RIYnZRTlIyMApTTHhnWnlFYU9MSFdmRVNYNFVJZk1mL3pDaGZ0Yzdhb1NpcUNhMGo2NmY2S3VVUnl6SSsxMThqYnpqK1gwb1d1ClVmdVV3dk5xWHR5ZjlyUTVWQW40bjhiU25nZDBGOXgzNFlyeUNMQ0REOWdBaWR3SDlVM3I3eVVGQ1Rkbm9leEgKSTgyYjRLdHZzT2NGMk5Dd21WZDFBWDNJSEFmMENRMEZSQ21YWjF3aFNxd1lFeVAxTStMMEcxN29CTmU5cmttMwo4U0NyWjczaWtiN0k1NXlVOWRrMjdXbVByb1hXMjAvcXhHeDYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBeG1MWWxNQXFEeGVreXljWWlvQXVTanlXOGJQK3FPMXltSENYdXFKNDdRb1V3SVJUCkFZdVAyTklQeFBza04xL3ZUeDBlTjFteURTRjdYd3dvTjR5cFpwWm9GM1pWdXU0U0ZxM3JNQVdPV3hVT3dERk0KZFZaSkJBSGFjZkdMemdOS01FZzRDVDhkUmZBUGxrYVdxNkROYkpXclhhbjVYZENScTY2WlN1T2U1dldNaEQ3MwphZ3UzWnBVZWtHQmpqTEdjNElTL2c2VzVvci9LeDdBa0JuVW1KUTczYjJZSXdCcjlLVnFNQVQ2eTJGWGxEUGlpCmN1S0RFK2tGNm9leG04QTljZ1pKaDloOFZpS0trdnV3bVh5c01ES0hTMkR6S0VpM0d4NU9TN1lHVmg0UkZManQKVXJuc1h4TVBtYWttRFV1NkZGSkJsWlpkUTRGN2pmSU9idldmOVFJREFRQUJBb0lCQVFDdkRPRld3QWxjcjl3MQpkaFh0Z0JWWVpBWTgyRHBKRE53bExwUnpscEZsZDVQQUhBS3lSbGR6VmtlYjVJNmNYZ1pucEtYWTZVaDIxYWhxCndldHF1Szl4V2g0WE5jK0gxaklYMlBiQnRPVmI4VVRHeWJsUmdBV0ZoNjBkQmFuNjZtUTRIa0Z6eDBFcFNSNDMKMTZselg3eGpwOTFDRkkxNC9tVExQSkQreDhLYXYxcDVPU1BYQkxhdzR6V1JycmFVSnFrVUtZcmRJUVlkNC9XQQpLNVp3WGpRdklpZzlGclArb2Fnb1kyelFzODFXMmlVd1pXanhkQnV0dXZiQW5mVEc0ZkQvUjc3MnNzUU44dkFvCldDUGpTcTlLckJZQzJYaWd5L2JkSHFFT3lpSmxUQVpaazZLQXlBN0ExbCs5WDFSOWxyUTFPTkpOS1k5WWRybTIKajFudW1WSXhBb0dCQU5sS3B4MW9tQVBQK0RaOGNMdjkwZDlIWm1tTDJZYkppUUtNdEwrUTJLKzdxZHNwemtOaQorb1J2R0NOR0R1U3JZbDZwWjFDMk0xajkxNXJwbWFrZmJmV2NDRWtKenlVRjhSMzUyb2haMUdYeWQzcmkxMWxqCndpcnlmcHl2QnF1SWlKYWR4Rk1UdGRoTmFuRTNFeURrSVJ0UW03YXcyZHppUnNobHkxVXFGMEYvQW9HQkFPbTYKQjFvbnplb2pmS0hjNnNpa0hpTVdDTnhXK2htc1I4akMxSjVtTDFob3NhbmRwMGN3ekJVR05hTDBHTFNjbFRJbwo4WmNNeWdXZU1XbmowTFA3R0syVUwranlyK01xVnFkMk1PRndLanpDOHNXQzhTUEovcC96ZWZkL2ZSUE1PamJyCm8rMExvblUrcXFjTGw1K1JXQ2dJNlA1dFo2VGR5eTlWekFYVUV2Q0xBb0dBQjJndURpaVVsZnl1MzF5YWt5M3gKeTRTcGp3dC9YTUxkOHNKTkh3S1hBRmFMVWJjNUdyN3kvelN5US9HTmJHb1RMbHJqOUxKaFNiVk5kakJrVm9tRgp2QXVYbExYSzQ5NHgrKzJhYjI5d2VCRXQxWGlLRXJmOTFHenp0KytYY0oxMDJuMkNSYnEwUmkxTlpaS1ZDbGY4CmNPdnNndXZBWVhFdExJT2J6TWxraFkwQ2dZRUEyUnFmOGJLL3B4bkhqMkx5QStYT3lMQ1RFbmtJWUFpVHRYeWsKbTI0MzFGdUxqRW9FTkRDem9XUGZOcnFlcUVZNm9CbEFNQnNGSFNyUW81ZW1LVWk0cDZQYXpQdUJQZlg2QUJ2ZApVOHNvc01BMVdocERmQWNKcWZJei9SNURSTHlUNXFnRDRSREptemJXdGN3aXoybm5CV2toWkJTa0RaU29SQlBpCkxCZk9iL2tDZ1lFQXk1ZS9MaXgzSzVvdHhGRC8xVVV0cGc2dEJqMksxVkg5bDJJWFBidmFKMjZQYnZWYkEwQTUKM0Z5UmZnSTlZTTc3T3QxbTY0ZlRTV21YdTJKU0JpM3FFQ2xic3FRT2taZXZ1V2VsSVY5WnhWblc5NVMzMHVuUwp0ZEk3ZDVTUm1OSUpWK0l1Mk9IRGxkYXN4TzJmcVFoTnVxSFRiVStvNW42ZCtUUlpXVTdpN0drPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
    token: JSUzI1NiIsImtpZCI6Ikg5dThGMmc0c1ZBOTVkajVjMGRlb2poZjJMaExDSFp1T1NJWTdobkYtWmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTRsYzkyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiNjc2MGRkZi1kN2FhLTRlZjctYWZkOS05YzA0ZThlMWE5NTQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.XCA6-Wo7q8tJY8td1PRGkruvuNOmtHenjzyToRq5fJjGmWjdLspMDRvDul7YjMeY5eNuhcMG1cJgnyTZZW4gypIiVK1cAtvNR-U4oS0Vv8PqknZdc5-U1ftjIUeayH33tPCAgj-rui31CTwg26s0Z0B312XHF6tLOZZYxkavd1zYVt7DJaJcJpVsC1yaagoLBTjrfpV42N2s49QxnXMaQwYJGy2vowbLcxekdOV2h-7Hv63DxqBRoFYNx_DawN2m3JFfIyQMP7lwENXvNK76wnY2boO8asbIS92V4poLnc9v0r4gtV80dFp3558_XYBWhnZq-_klFHsfxJ0Opt_iEA
# ����
cp /root/.kube/config /data/dashboard/k8s-dashboard.kubeconfig
sz k8s-dashboard.kubeconfig 
6�����ļ���֤��¼

Kubernetes ²¿Êð¼¯Èº1.28.2°æ±¾(ÎÞ¿Ó)

Kubernetes ²¿Êð¼¯Èº1.28.2°æ±¾(ÎÞ¿Ó)

8��Kubernetes KuBoard ���ӻ����𣨿�ѡ��

1��KuBoard ���

Kuboard��һ����ѵ� Kubernetes �������ߣ��ṩ�˷ḻ�Ĺ��ܣ�������л��½��Ĵ���ֿ⡢����ֿ⡢CI/CD���ߵȣ����Ա�ݵĴһ���������õ� Kubernetes ������ƽ̨�����ɹ�����������ԭ��Ӧ�á���Ҳ����ֱ�ӽ� Kuboard ��װ�����е� Kubernetes ��Ⱥ��ͨ�� Kuboard �ṩ�� Kubernetes RBAC �������棬�� Kubernetes �ṩ���������Ÿ����Ŀ����Ŷӡ�

Kubernetes ²¿Êð¼¯Èº1.28.2°æ±¾(ÎÞ¿Ó)

2��Kuboard �ṩ�Ĺ�����

  • Kubernetes ������������

  • �ڵ����

  • ���ƿռ����

  • �洢��/�洢������

  • ��������Deployment/StatefulSet/DaemonSet/CronJob/Job/ReplicaSet������

  • Service/Ingress ����

  • ConfigMap/Secret ����

  • CustomerResourceDefinition ����

  • Kubernetes �������

  • Top Nodes / Top Pods

  • �¼��б���֪ͨ

  • ������־���ն�

  • KuboardProxy (kubectl proxy �����߰汾)

  • PortForward (kubectl port-forward �Ŀ�ݰ汾)

  • �����ļ� ��kubectl cp �����߰汾��

  • ��֤����Ȩ

  • Github/GitLab �����¼

  • KeyCloak ��֤

  • LDAP ��֤

  • ������ RBAC Ȩ�޹���

  • Kuboard ��ɫ����

  • Grafana+ Prometheus ��Դ���

  • Grafana+Loki+Promtail ��־�ۺ�

  • Kuboard �ٷ��׼�

  • Kuboard �Զ������ƿռ䲼��

  • Kuboard ��Ӣ�����԰�

3��Kuboard ����

KuBord������ https://kuboard.cn/install/v3/install-in-k8s.html#%E5%AE%89%E8%A3%85

�ṩ�İ�װ�������£�(֧��1.27)

KuBord������https://kuboard.cn/install/v3/install.html
�ṩ�İ�װ�������£�
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

�����쳣podһֱ������ ȱ�� Master Role

  • ����ȱ�� Master Role �������

  • ������ * �����ơ���Ѷ�ƣ��Լ������ƣ��й�* �� K8S ��Ⱥ���Դ˷�ʽ��װ Kuboard ʱ����ִ�� kubectl get nodes �� * ������ master �ڵ�* ��

  • �����ļ�Ⱥ��ͨ�������Ʒ�ʽ��װʱ�����ļ�Ⱥ�п���ȱ�� Master Role�����ߵ���ɾ���� Master �ڵ��

�ڼ�Ⱥ��ȱ�� Master Role �ڵ�ʱ����Ҳ����Ϊһ���������� worker �ڵ����ӵı�ǩ�������� kuboard-etcd ��ʵ��������

  • ִ������ָ�����Ϊ�ڵ���������Ҫ�ı�ǩ
kubectl label nodes your-node-name k8s.kuboard.cn/role=etcd 

4������ Kuboard

������������ http://172.23.70.235:30080

�����ʼ�û��������룬����¼

  • �û����� admin
  • ���룺 Kuboard123

������ɺ󣬽���30080�˿ڿ��Կ�������������

Kubernetes ²¿Êð¼¯Èº1.28.2°æ±¾(ÎÞ¿Ó)

curl -k 'http://172.23.70.235:30080/kuboard-api/cluster/default/kind/KubernetesCluster/default/resource/installAgentToKubernetes?token=VJr7EYvO0Dvh7eoB8JlYcN7S0GQhnPZE' > kuboard-agent.yaml
kubectl apply -f ./kuboard-agent.yaml

Ȼ��Ϳ��Կ�����Ⱥ��Ϣ��

Kubernetes ²¿Êð¼¯Èº1.28.2°æ±¾(ÎÞ¿Ó)

���˼�Ⱥ�������

С���Ƽ��Ķ�

�������������Ľ�Ϊ������Ϣ����������������ͬ���޹۵��֤ʵ��������

K
K
���ͣ���ɫ����������Ӫ״̬����⡡�����ԣ����� ����

��Ϸ����

��Ϸ���

��Ϸ��Ƶ

��Ϸ����

��Ϸ�

��K�������ִ�Ԫ������һ����ϵ����RPG��Ϸ����Ϸ����ͬ�������ı��������ˮ׼�������������������Ϸ��

�����Ƶ����

����

ͬ������

����

ɨ��ά�����������ֻ��汾��

ɨ��ά����������΢�Ź��ںţ�

��վ�������������������ϴ��������ַ���İ�Ȩ���뷢�ʼ�[email protected]

��ICP��2022002427��-10 �湫��������43070202000427��© 2013~2025 haote.com ������