关注我的个人博客:www.yaoxinlei.com

姚鑫磊的博客园

翻过一座山,山后一片海。

K8S-1

K8S集群维护


1、集群维护

1.1 添加与删除master

1.2 添加与删除node

1.3 升级master

1.4 升级node

1.5 master高可用机制与验证


2、kubectl 常用命令及kubectlnetes组件-etcd

2.1 etcd 简介及命令

Etcd:

https://kubernetes.io/zh/docs/tasks/administer-cluster/configure-upgrade-etcd

https://etcd.io#官网

https://github.com/etcd-io/etcd#github

  • Etcd是CoreOS公司开发目前是Kubernetes默认使用的key-value数据存储系统,用于保存kubernetes的所有集群数据,etcd支持分布式集群功能,生产环境使用时需要etcd数据提供定期备份机制。

2.2 etcd 数据备份与恢复


3、DNS 与dashboard

3.1 coredns 安装

CoreDns-GitHub地址

3.1.1 下载地址

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.22.md#downloads-for-v1225

3.1.2 下载完成后解压

tar xvf kubernetes-v1.22.5.tar.gz
root@130-me-et-node-1:~# cd /usr/local/src/kubernetes/cluster/addons/dns/coredns
root@130-me-et-node-1:/usr/local/src/kubernetes/cluster/addons/dns/coredns# ll
total 44
drwxr-xr-x 2 root root 4096 Dec 16 16:54 ./
drwxr-xr-x 5 root root 4096 Dec 16 16:54 ../
-rw-r--r-- 1 root root 1075 Dec 16 16:54 Makefile
-rw-r--r-- 1 root root 4966 Dec 16 16:54 coredns.yaml.base
-rw-r--r-- 1 root root 5016 Dec 16 16:54 coredns.yaml.in
-rw-r--r-- 1 root root 5018 Dec 16 16:54 coredns.yaml.sed
-rw-r--r-- 1 root root  344 Dec 16 16:54 transforms2salt.sed
-rw-r--r-- 1 root root  287 Dec 16 16:54 transforms2sed.sed
root@130-me-et-node-1:/usr/local/src/kubernetes/cluster/addons/dns/coredns# 
root@130-me-et-node-1:/usr/local/src/kubernetes/cluster/addons/dns/coredns# cp coredns.yaml.base /root/coredns.yaml
root@130-me-et-node-1:/usr/local/src/kubernetes/cluster/addons/dns/coredns# cd /root/
root@130-me-et-node-1:~# vim coredns.yaml 
data:
  Corefile: |
    .:53 {
        errors
        health {
            lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {            #修改成自己域名后缀
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
            ttl 30
        }
        prometheus :9153
        forward . 223.6.6.6 {       #   请求转发,将自己解析不了的域名转发出去;
            max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
    }
######
containers:
      - name: coredns
        image: coredns/coredns:1.8.6
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            memory: 256Mi    #资源限制   
          requests:
            cpu: 100m
            memory: 70Mi
###############
spec:
  selector:
    k8s-app: kube-dns
  clusterIP: 10.100.0.2    # 装好K8Sdns  自动生成的ip
  ports:
#####################
containers:
      - name: coredns
        image: coredns/coredns:1.8.6   #修改镜像仓库
        imagePullPolicy: IfNotPresent

3.1.3 如果容器显示runing,但是状态为0/1时,需要添加如下配置

- apiGroups:
  - discovery.k8s.io
  resources:
  - endpointslices
  verbs:
  - list
  - watch

3.1.4 执行文件

root@130-me-et-node-1:~# kubectl apply -f coredns.yaml 
root@130-me-et-node-1:~# kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS       AGE
default       net-test1                                  1/1     Running   5 (24h ago)    7d21h
default       net-test2                                  1/1     Running   4 (24h ago)    7d20h
default       net-test3                                  1/1     Running   3 (24h ago)    7d20h
default       net-test4                                  1/1     Running   13 (19h ago)   7d20h
kube-system   calico-kube-controllers-59df8b6856-6zfwp   1/1     Running   4 (41m ago)    7d21h
kube-system   calico-node-d5f6b                          1/1     Running   5 (41m ago)    7d20h
kube-system   calico-node-qzks8                          1/1     Running   5 (41m ago)    7d20h
kube-system   coredns-69d84cdc49-x8c7v                   1/1     Running   1 (24h ago)    4d22h
kube-system   metrics-server-68fdd9f5b4-9wjm5            1/1     Running   6              7d19h

3.1.5 登录容器,测试DNS是否安装成功

root@130-me-et-node-1:~# kubectl exec net-test4 -it sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
/ # ping www.baidu.com
PING www.baidu.com (14.215.177.39): 56 data bytes
64 bytes from 14.215.177.39: seq=0 ttl=127 time=406.864 ms
64 bytes from 14.215.177.39: seq=1 ttl=127 time=324.903 ms
^C
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 324.903/365.883/406.864 ms
/ # ping www.sina.com
PING www.sina.com (60.170.11.72): 56 data bytes
64 bytes from 60.170.11.72: seq=0 ttl=127 time=134.875 ms
64 bytes from 60.170.11.72: seq=1 ttl=127 time=14.106 ms
^C
--- www.sina.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 14.106/74.490/134.875 ms

3.2 官方dashboard

Dasgboard-GitHub下载地址

3.2.1 部署官方dashnoard,下载yaml文件基础

下载官方提供的yaml文件
root@130-me-et-node-1:~# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
root@130-me-et-node-1:~# mv recommended.yaml dashboard-v2.4.0.yaml
编写位置文件,将已下配置进行修改:大约在44行左右进行添加
type: NodePort   #添加个port
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30088    #添加个指定端口
root@130-me-et-node-1:~# kubectl apply -f dashboard-v2.4.0.yaml 
root@130-me-et-node-1:~# kubectl get pod -A
NAMESPACE              NAME                                        READY   STATUS    RESTARTS       AGE
default                net-test1                                   1/1     Running   5 (24h ago)    7d21h
default                net-test2                                   1/1     Running   4 (24h ago)    7d21h
default                net-test3                                   1/1     Running   3 (24h ago)    7d20h
default                net-test4                                   1/1     Running   13 (19h ago)   7d20h
kube-system            calico-kube-controllers-59df8b6856-6zfwp    1/1     Running   4 (70m ago)    7d21h
kube-system            calico-node-d5f6b                           1/1     Running   5 (70m ago)    7d20h
kube-system            calico-node-qzks8                           1/1     Running   5 (70m ago)    7d20h
kube-system            coredns-69d84cdc49-x8c7v                    1/1     Running   1 (24h ago)    4d23h
kube-system            metrics-server-68fdd9f5b4-9wjm5             1/1     Running   6              7d20h
kubernetes-dashboard   dashboard-metrics-scraper-c45b7869d-zhwht   1/1     Running   0              2m52s
kubernetes-dashboard   kubernetes-dashboard-576cb95f94-f7bjl       1/1     Running   0              2m52s
root@130-me-et-node-1:~# kubectl get svc -A   
NAMESPACE              NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default                kubernetes                  ClusterIP   10.100.0.1       <none>        443/TCP                  7d22h
kube-system            kube-dns                    ClusterIP   10.100.0.2       <none>        53/UDP,53/TCP,9153/TCP   4d23h
kube-system            metrics-server              ClusterIP   10.100.204.153   <none>        443/TCP                  7d20h
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   10.100.6.23      <none>        8000/TCP                 28m
kubernetes-dashboard   kubernetes-dashboard        NodePort    10.100.204.189   <none>        443:30088/TCP            28m

3.2.2 浏览器输入:https://ip+30088端口

image

  • 使用kubeconfig进行验证

4.1 基于yaml文件运行nginx及tomcat

5、K8S资源对象简介、pod、Replication Controller、ReplicaSet、Deployment

6、svc、Volume简介、emptyDir、hostPath

7、nfs等共享存储、Configmp、pv/pvc、Statefulset、DaemonSet

posted @ 2022-01-12 21:37  姚鑫磊  阅读(74)  评论(0编辑  收藏  举报
区顶部