docker+k8s

67 阅读4分钟
docker基本命令

导出: docker save [options] images [images...]

示例: docker save -o nginx.tar nginx:latest 或 docker save > nginx.tar nginx:latest 其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)

导入: docker load [options]

示例: docker load -i nginx.tar 或 docker load < nginx.tar 其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

export docker export [options] container

示例 docker export -o nginx-test.tar nginx-test 其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

import docker import [options] file|URL|- [REPOSITORY[:TAG]]

示例 docker import nginx-test.tar nginx:imp 或 cat nginx-test.tar | docker import - nginx:imp

若是只想备份images,使用save、load即可 若是在启动容器后,容器内容有变化,需要备份,则使用export、import

推送镜像: 1、标记:docker tag srm-mdm:2021-12-07-cl registry.shac-c7n.com/operation-swyth/srm-mdm:2021-12-07-cl

2、推送:docker push registry.shac-c7n.com/operation-swyth/srm-mdm:2021-12-07-cl

提交: docker commit 容器名 新容器名:版本

k8s 基本命令

1、查看namespace kubectl get ns

2、查看pod kubectl get po -n 查看svc kubectl get svc -n

3、查看日志 kubectl logs -n <pod名称> -f

4、重启pod kubectl delete pod -n <pod名称>

5、创建pod kubectl apply -f pod.yaml -n

6、查看pod描述 kubectl describe pod -n

7、更改副本个数 kubectl scale deploy <pod名称> -n <namesapce名称> --replicas=0 kubectl scale deploy <pod名称> -n <namesapce名称> --replicas=1

8、dns配置 kubectl edit cm -n kube-system coredns

9、设置节点不可调度 kubectl cordon ip 设置可调度 k uncordon ip

10、手动修改镜像 kubectl set image deploy <pod名称> *=<镜像版本> -n 如:kubectl set image deploy srm-mdm-op *=registry.shac-c7n.com/operation-swyth/srm-mdm:2021-12-07-cl -n swyth-uat

k8s安装

安装 git 命令行

sudo yum install git -y

克隆本项目代码

git clone github.com/choerodon/k…

进入项目目录

cd kubeadm-ha

安装 ansible 环境

sudo ./install-ansible.sh

配置 ansible inventory 文件

  • 项目 example 文件夹下提供了 6 个 ansible inventory 示例文件,请按需求进行选择并修改。

  • 拷贝项目下的 example/hosts.m-master.ip.ini 文件至项目根目录下,命名为 inventory.ini,修改各服务器的 IP 地址、用户名、密码,并维护好各服务器与角色的关系。

    请使用服务器内网 IP 作为 ansible 目标服务器 IP,请勿使用服务器公网 IP。 该用户必须是具有 root 权限的用户,但并非要求一定是 root 用户,其他具有 root 权限的用户也可以。

    克隆下来的本项目文件与 inventory.ini 文件很重要,涉及到后期的集群运维工作,请一定妥善保管

; 将所有节点的信息在这里填写
;    第一个字段                  为节点内网IP,部署完成后为 kubernetes 节点 nodeName
;    第二个字段 ansible_port     为节点 sshd 监听端口
;    第三个字段 ansible_user     为节点远程登录用户名
;    第四个字段 ansible_ssh_pass 为节点远程登录用户密码
[all]
192.168.56.11 ansible_port=22 ansible_user="vagrant" ansible_ssh_pass="vagrant"
192.168.56.12 ansible_port=22 ansible_user="vagrant" ansible_ssh_pass="vagrant"
192.168.56.13 ansible_port=22 ansible_user="vagrant" ansible_ssh_pass="vagrant"
192.168.56.14 ansible_port=22 ansible_user="vagrant" ansible_ssh_pass="vagrant"
; 私有云:
;    VIP 负载模式:
;       也就是负载均衡器 + keepalived 模式,比如常用的 haproxy + keepalived。
;       本脚本中负载均衡器有 nginx、haproxy、envoy 可供选择,设置 lb_mode 即可进行任意切换。
;       设置 lb_kube_apiserver_ip 即表示启用 keepalived,请先与服务器提供部门协商保留一个IP作为 lb_kube_apiserver_ip,
;       一般 lb 节点组中有两个节点就够了,lb节点组中第一个节点为 keepalived 的 master 节点,剩下的都为 backed 节点。
;
;    节点本地负载模式:
;       只启动负载均衡器,不启用 keepalived(即不设置 lb_kube_apiserver_ip),
;       此时 kubelet 链接 apiserver 地址为 127.0.0.1:lb_kube_apiserver_port。
;       使用此模式时请将 lb 节点组置空。
;
; 公有云:
;    不推荐使用 slb 模式,建议直接使用节点本地负载模式。
;    若使用 slb 模式,请先使用节点本地负载模式进行部署,
;    部署成功后再切换至 slb 模式:
;       将 lb_mode 修改为 slb,将 lb_kube_apiserver_ip 设置为购买到的 slb 内网ip,
;       修改 lb_kube_apiserver_port 为 slb 监听端口。
;    再次运行初始化集群脚本即可切换至 slb 模式。
[lb]
; 注意etcd集群必须是1,3,5,7...奇数个节点
[etcd]
192.168.56.11
192.168.56.12
192.168.56.13
[kube-master]
192.168.56.11
192.168.56.12
192.168.56.13
[kube-worker]
192.168.56.11
192.168.56.12
192.168.56.13
192.168.56.14
; 预留组,后续添加master节点使用
[new-master]
; 预留组,后续添加worker节点使用
[new-worker]
; 预留组,后续添加etcd节点使用
[new-etcd]
;-------------------------------------- 以下为基础信息配置 ------------------------------------;
[all:vars]
; 是否跳过节点物理资源校验,Master节点要求2c2g以上,Worker节点要求2c4g以上
skip_verify_node=false
; kubernetes版本
kube_version="1.16.8"
; 负载均衡器
;   有 nginx、haproxy、envoy 和 slb 四个选项,默认使用 nginx;
lb_mode="nginx"
; 使用负载均衡后集群 apiserver ip,设置 lb_kube_apiserver_ip 变量,则启用负载均衡器 + keepalived
; lb_kube_apiserver_ip="192.168.56.15"
; 使用负载均衡后集群 apiserver port
lb_kube_apiserver_port="8443"
; 网段选择:pod 和 service 的网段不能与服务器网段重叠,
; 若有重叠请配置 `kube_pod_subnet` 和 `kube_service_subnet` 变量设置 pod 和 service 的网段,示例参考:
;    如果服务器网段为:10.0.0.1/8
;       pod 网段可设置为:192.168.0.0/18
;       service 网段可设置为 192.168.64.0/18
;    如果服务器网段为:172.16.0.1/12
;       pod 网段可设置为:10.244.0.0/18
;       service 网段可设置为 10.244.64.0/18
;    如果服务器网段为:192.168.0.1/16
;       pod 网段可设置为:10.244.0.0/18
;       service 网段可设置为 10.244.64.0/18
; 集群pod ip段
kube_pod_subnet="10.244.0.0/18"
; 集群service ip段
kube_service_subnet="10.244.64.0/18"
; 集群网络插件,目前支持flannel,calico,kube-ovn
network_plugin="flannel"
; 若服务器磁盘分为系统盘与数据盘,请修改以下路径至数据盘自定义的目录。
; Kubelet 根目录
kubelet_root_dir="/var/lib/kubelet"
; docker容器存储目录
docker_storage_dir="/var/lib/docker"
; Etcd 数据根目录
etcd_data_dir="/var/lib/etcd"