linux怎么查看本机内存大小
285
2022-09-08
K8s使用手册(2)—— 软件配置
@TOC
目的
“K8s在容器编排领域已经形成统治地位,不管是开发、运维和测试,掌握 kubernetes 都变得非常有必要。” —— 相信大家应该在各类技术论坛与博客中早已看见过如上的一段话。的确在敏捷开发占主导模式的现今,无论是项目任何阶段都随处可见K8s的身影,基础扩展要求、故障转移、部署模式等,以上这些基于K8s的特性与强大功能,都可以随时随地实现与落地。
对于测试的同学来说,测试环境的集中化、自动化管理,这些也可以依托于K8s的功能来实现。日常工作中的测试环境集群也经常会有按需调整(加入新的服务器或销毁资源)的情况,K8s可以满足我们相关的大部分工作需求。另一方面,持续集成领域中,K8s也是不可或缺的重要角色之一,有了他就可以使我们在平时的测试活动前期更加快速有效的自动部署测试环境。
所以作为有一定工作经验的测试同学来说,K8s绝对是无法绕过的一项重要技能。
接上回
上一篇我们已经基本将K8s的安装操作给完成了,那么接下来就针对K8s的使用进行基础的配置和其他相关操作的说明。
基础配置
为了实现K8s的网络集群,我们需要使用Linux中的网桥功能
检查bridge-nf-call-iptables文件内容是否为1,如不是则修改内容为1
cat /proc/sys/net/bridge/bridge-nf-call-iptables
在/etc/sysctl.d/下创建k8s.conf文件,并写入以下内容
net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1
修改本机主机名此处也是一样,根据hosts文件中设置的对应IP与域名设置对应的主机名,可以更好的快速定位到具体节点
hostnamectl set-hostname 要修改的主机名
节点设置
使用重定向将K8s默认配置拉取至yaml文件
kubeadm config print init-defaults > init-config.yaml
设置完成后,进行相关镜像拉取
kubeadm config images pull --config=init-config.yaml
节点部署
使用kubeadm init进行部署(master节点)命令比较长使用换行方式显示
kubeadm init \ --apiserver-advertise-address=172.20.30.112 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.23.0 \ --service-cidr=172.20.30.1/24 \ --pod-network-cidr=172.20.30.1/24
kubeadm初始化的参数比较多,有兴趣的可以再扩展一下,以便适应各类测试环境搭建的需求
--apiserver-advertise-address string 设置 apiserver 绑定的 IP. --apiserver-bind-port int32 设置apiserver 监听的端口. (默认 6443) --apiserver-cert-extra-sans strings api证书中指定额外的Subject Alternative Names (SANs) 可以是IP 也可以是DNS名称。 证书是和SAN绑定的。 --cert-dir string 证书存放的目录 (默认 "/etc/kubernetes/pki") --certificate-key string kubeadm-cert secret 中 用于加密 control-plane 证书的key --config string kubeadm 配置文件的路径. --cri-socket string CRI socket 文件路径,如果为空 kubeadm 将自动发现相关的socket文件; 只有当机器中存在多个 CRI socket 或者 存在非标准 CRI socket 时才指定. --dry-run 测试,并不真正执行;输出运行后的结果. --feature-gates string 指定启用哪些额外的feature 使用 key=value 对的形式。 --help -h 帮助文档 --ignore-preflight-errors strings 忽略前置检查错误,被忽略的错误将被显示为警告. 例子: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks. --image-repository string 选择拉取 control plane images 的镜像repo (default "k8s.gcr.io") --kubernetes-version string 选择K8S版本. (default "stable-1") --node-name string 指定node的名称,默认使用 node 的 hostname. --pod-network-cidr string 指定 pod 的网络, control plane 会自动将 网络发布到其他节点的node,让其上启动的容器使用此网络 --service-cidr string 指定service 的IP 范围. (default "10.96.0.0/12") --service-dns-domain string 指定 service 的 dns 后缀, e.g. "myorg.internal". (default "cluster.local") --skip-certificate-key-print 不打印 control-plane 用于加密证书的key. --skip-phases strings 跳过指定的阶段(phase) --skip-token-print 不打印 kubeadm init 生成的 default bootstrap token --token string 指定 node 和control plane 之间,简历双向认证的token ,格式为 [a-z0-9]{6}\.[a-z0-9]{16} - e.g. abcdef.0123456789abcdef --token-ttl duration token 自动删除的时间间隔。 (e.g. 1s, 2m, 3h). 如果设置为 '0', token 永不过期 (default 24h0m0s) --upload-certs 上传 control-plane 证书到 kubeadm-certs Secret.
在用户的主目录下创建隐藏文件夹kube
mkdir -p $HOME/.kube
复制配置文件至该目录下
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
修改文件路径所属权限
chown $(id -u):$(id -g) $HOME/.kube/config
查看node节点信息
kubectl get nodes
安装flannel
kubectl apply -f join 172.20.30.112:6443 --token mi7wl8.t9tppdipry6tmrl4 \ --discovery-token-ca-cert-hash sha256:2ed5b46fac3d512fdd258ffd58a0000cea15370f33204ca44c967d063cf42ffb
在集群中创建一个pod
kubectl run nginx --image=nginx
创建后使用命令进行pod查看
kubectl get pods -n default
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~