## 安装 Charm 2.x ```bash sudo snap install charm --channel=2.x --classic ``` ## 基础安装包 ```bash charm list-resources cs:~containers/etcd-633 wget https://api.jujucharms.com/charmstore/v5/~containers/etcd-633/resource/etcd/3 -O etcd.tar.gz charm list-resources cs:~containers/easyrsa-419 wget https://api.jujucharms.com/charmstore/v5/~containers/easyrsa-419/resource/easyrsa/5 -O easyrsa.tar.gz charm list-resources cs:~containers/kubernetes-master-1077 wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-master-1077/resource/cni-amd64/12 -O cni-amd64.tar.gz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-master-1077/resource/cni-arm64/12 -O cni-arm64.tar.gz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-master-1077/resource/cni-s390x/12 -O cni-s390x.tar.gz charm list-resources cs:~containers/kubernetes-worker-815 wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-worker-815/resource/cni-amd64/983 -O cni-amd64.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-worker-815/resource/cni-arm64/974 -O cni-arm64.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/kubernetes-worker-815/resource/cni-s390x/986 -O cni-s390x.tgz charm list-resources cs:~containers/calico-838 wget https://api.jujucharms.com/charmstore/v5/~containers/calico-838/resource/calico/977 -O calico.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-838/resource/calico-arm64/976 -O calico-arm64.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-838/resource/calico-node-image/659 -O calico-node-image.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-838/resource/calico-upgrade/804 -O calico-upgrade.tgz wget https://api.jujucharms.com/charmstore/v5/~containers/calico-838/resource/calico-upgrade-arm64/804 -O calico-upgrade-arm64.tgz ``` ## 向 controller 上传资源 ```bash juju attach-resource resource-name= juju attach-resource calico calico=/home/sa/charm/calico/calico-amd64.tar.gz juju attach-resource calico calico-upgrade=/home/sa/charm/calico/calico-upgrade-amd64.tar.gz ``` ## Snap Download ```bash #!/bin/bash set -eux SNAP_CHANNEL="1.22/stable" # Need juju 2.9 ALL_SNAPS="kube-apiserver kube-scheduler kube-controller-manager kube-proxy kubectl kubelet cdk-addons" MASTER_SNAPS="kube-apiserver kube-scheduler kube-controller-manager kube-proxy kubectl cdk-addons" WORKER_SNAPS="kube-proxy kubelet kubectl" # Download Juju 2.9 snap download --channel=2.9 juju # Download latest snaps from designated channel for snap in $ALL_SNAPS do snap download --channel=$SNAP_CHANNEL $snap done # Attach new snaps to master units for snap in $MASTER_SNAPS do juju attach kubernetes-master $snap=`ls ${snap}_*.snap` done # Attach new snaps to worker units for snap in $WORKER_SNAPS do juju attach kubernetes-worker $snap=`ls ${snap}_*.snap` done # Upgrade to new snaps on masters, one at a time for unit in `juju status --format json | jq -r '.applications|.["kubernetes-master"].units | keys[]'` do juju run-action $unit upgrade --wait done # Upgrade to new snaps on workers, one at a time for unit in `juju status --format json | jq -r '.applications|.["kubernetes-worker"].units | keys[]'` do juju run-action $unit upgrade --wait done ``` ## Final Release 需要手动做 Fix ```Bash https://raw.githubusercontent.com/charmed-kubernetes/bundle/main/releases/1.22/bundle.yaml charm pull cs:~containers/containerd-178 charm pull cs:~containers/easyrsa-420 charm pull cs:~containers/etcd-634 charm pull cs:~containers/kubernetes-master-1078 charm pull cs:~containers/kubernetes-worker-816 charm pull cs:~containers/calico-838 charm pull cs:~containers/kubeapi-load-balancer-844 ```